55:第五章:开发admin管理服务:8:MongoDB简介;CentOS7中安装MongoDB;使用Navicat连接MongoDB;MongoDB开启用户账号权限,MongoDB创建账号;

说明:

(1) 本篇博客内容:MongoDB简介,CentOS7中安装MongoDB,使用Navicat连接MongoDB,MongoDB开启用户账号权限,MongoDB创建账号;

目录

一:MongoDB,简介;

二:MongoDB,安装;(在Linux上安装)

三:使用Navicat这款可视化工具,去连接MongoDB;

四:启用MongoDB用户账号权限,创建一个root账号;


一:MongoDB,简介;

1.NoSql数据库;

(1)MongoDB是非关系型数据库;

(2) 其可以存储JSON数据;即,MongoDB适合存储JSON这种文档数据

          ● MongoDB的数据格式很灵活,比MySQL、MariaDB更灵活;

          ● 一些JSON文档数据,使用MongoDB来存储;可以帮MySQL等数据库,分摊一部分的流量压力;

……………………………………………………

2.内存级别查询;

(1)对于一些经常需要读写数据,MongoDB会将其放在内存中;

          ● 这样一来,MongoDB对于一些热数据的并发性能是很高的;这可以帮助提升系统的整体效率;

……………………………………………………

3.不支持事务;

(1)对于一些非事务的数据,完全是可以保存到MongoDB中的;
          ● 这些非事务的数据,往往也都是一些非核心数据

(2)即,我们可以把一些【非核心】+【读写有很高的并发】的数据,放在MongoDB中的;

          ● 比如,物流系统中的"车辆运行轨迹"、"GPS坐标"、"大气检测中的动态指标"数据;

          ● 或者,当前系统中,首页的友情链接数据;

          ● 这样的数据,不是很重要,但是其并发读是很高的;所以,完全可以把其放在MongoDB中;

……………………………………………………

4.GridFS小文件存储;

(1)MongoDB还提供了一个GridFS;GridFS适合存储一些小文件;而且,我们可以自己去把控接口的读取权限;

          ● 一般,身份证信息、人脸信息等,我们是可以把其存储在MongoDB的GridFS中的;

(1)【MySQL:database:逻辑空间】,【MongoDB:dataBase】;

          ● 在MySQL中,一个database就是一个逻辑空间;

          ● 和MySQL一样,MongoDB也有dataBase;

(2)【MySQL:table:表】,【MongoDB:collection】;

          ● 在MySQL中,一database中包含很多的表,也就是table;

          ● 在MongoDB中,没有table的概念,而是collection数据集合;每个database中,可以包含多个不同的collection数据集合;比如,我们可以有一个用户的集合,也可以有一个订单的集合;

(3)【MySQL:row:行】,【MongoDB:document】;

          ● 在MySQL中,一张表中是一行一行的记录;

          ● 在MongoDB中,没有row 行(记录)的概念;MongoDB的collection集合中,是一个一个的document 文档;document一般是JSON的形式; 一个JSON,本身就是一个JSON对象;其可以转换成MySQL中的一条记录(row);

(4)【MySQL:column:列】,【MongoDB:field】;

          ● 在MySQL中,有列的概念;

          ● 在MongoDB中,其document中的是field;field其实就是,JSON对象中的某个属性;

(5)【MySQL:index:索引】,【MongoDB:index】;

          ● MySQL和MongoDB都有索引;

(6)在MySQL中,可以进行join表关联查询;而MongoDB是非关系型数据库,其没有关联查询;

(7)【MySQL:主键id】,【MongoDB:_id】;

(1)如上图的例子中,UserList可以看成是某个database中的collection;

          ● 即,相当于MySQL中的表;

(2.2)在UserList中,会包含很多个JSON对象,即如上图,包含多个{};

          ● 一个{}就代

### 解决 MongoDBNavicat 连接时出现 NotFound 错误的方法 当遇到 `Cannot connect to MongoDB` 或者 `No suitable servers found` 的错误提示时,通常意味着客户端未能成功找到可以连接服务器实例。这可能是由于网络配置不当、Docker 容器设置不正确或者 MongoDB 服务本身存在问题。 #### 检查 Docker 中 MongoDB 的运行状态 确认 MongoDB 实例正在正常工作并监听外部请求是非常重要的一步。可以通过执行以下命令来验证容器内的 MongoDB 是否处于活动状态: ```bash docker ps | grep mongo ``` 如果 MongoDB 正常启动,则应显示相应的容器 ID 及其他信息;反之则需排查日志文件了解具体原因。 #### 修改防火墙规则允许远程访问 CentOS 默认的安全策略可能会阻止来自外界对数据库端口(默认为27017)的数据包进入系统内部。因此建议临时关闭 SELinux 并调整 iptables 设置以便测试连通性: ```bash sudo setenforce 0 # 关闭SELinux强制模式 sudo systemctl stop firewalld.service # 停止firewall守护进程 ``` 当然,在生产环境中应当更加谨慎地管理权限控制而不是简单禁用安全特性。 #### 配置 MongoDB 绑定 IP 地址 编辑 `/etc/mongod.conf` 文件中的 bindIp 参数以确保其值不仅限于 localhost (即127.0.0.1),而是设定了能够接受外网请求的有效地址范围,例如 `::,0.0.0.0` 表示所有 IPv4 和 IPv6 接口都将被启用[^1]。 #### 使用正确的 URI 格式建立连接字符串 对于某些版本的驱动程序来说,指定完整的认证机制以及明确指出要使用的副本集名称可能有助于解决问题。尝试构建如下所示的标准形式 URL 来初始化会话对象: ```javascript mongodb://username:password@hostname_or_ipaddress:port/database_name?authSource=admin&replicaSet=rs0 ``` 请注意替换上述模板里的占位符部分为你自己的实际参数值。 #### 更新或重试驱动库版本 有时特定版本间的兼容性差异也会引发类似的异常情况。查阅官方文档得知存在关于游标丢失的问题报告[^2][^3],所以考虑升级到最新稳定版 Java Driver 或 Python PyMongo 库也许能有所帮助。 通过以上措施应该可以有效缓解乃至彻底消除此类连接失败现象的发生几率。不过值得注意的是,任何涉及敏感数据的操作都务必遵循最佳实践指南来进行妥善处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值