Centos7安装mongodb

初始安装

初始安装很简单,具体过程参考了:https://blog.csdn.net/junshan...,其中最重要的就是mongodb.conf这个文件的配置,具体如下:

port=27017
#端口  
dbpath=/u03/mongodb/db
#数据库存文件存放目录  
logpath=/u03/mongodb/mongodb.log
#日志文件存放路径  
logappend=true
#使用追加的方式写日志  
fork=true
#不以守护程序的方式启用,即不在后台运行  
maxConns=100
#最大同时连接数  
auth=true
#不启用验证  
journal=true
#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=mmapv1 
#存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0
#这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

启动

安装完成后,启动mongodb
mongod --config /u03/mongodb/mongodb.conf

启动报错

exception in initAndListen: NonExistentPath: Data directory /data/db not found
结果启动报错,找不到/data/db这个路径,/data/db这个路径用于存储数据库相关数据,在安装mongodb时,mongodb.conf内配置的dbpath=/u03/mongodb/db。因此通过
mongod --dbpath /u03/mongodb/db来启动。

查看mongodb端口状态

启动成功后,查看mongodb是否处于listening的状态。
netstat -lanp | grep "27017"

创建数据库

接下来开始创建 数据库(在服务器上操作)
进入命令行
mongo
创建数据库
use test
创建用户并授权

db.createUser({
    user:"test",
    pwd:"test",
    roles:[{role:"userAdmin",db:"test"}]
})

Centos7安装mongodb

windows连接报错

数据库创建成功后,开始在本地环境远程连接mongodb。结果,又报错了!
Cannot connect to the MongoDB at 192.168.58.131:27017. Error: Network is unreachable.

  1. 首先排查mongodb.conf,bind_ip是否为0.0.0.0,端口号是否为27017;
  2. 其次查看服务器防火墙是否关闭, systemctl status firewalld ,如果防火墙开启,则关闭防火墙systemctl stop firewalld(关于防火墙的学习来自于 https://www.cnblogs.com/moxia...);
  3. 然后又在本地检查27017端口是否开启,telnet 192.168.58.131 27017,第一次提示“telnet不是内部或外部命令”,解决办法: https://blog.csdn.net/haijing...,再次运行,报“无法打开到主机的连接。 在端口 27017: 连接失败”,由此可知,是27017端口的问题。
  4. 查遍了所有资源都没有解决,最终在https://blog.csdn.net/hongwei...,在启动命令最后加上--bind_ip_all,mongod --dbpath /u03/mongodb/db --auth --bind_ip_all,终于成功了!

调试过程中其他错误

在调整无法连接这个问题时,尝试了各种方法,数据库来回启动了无数次,其中也遇到了一些其他报错,在这里列出:
1.exception in initAndListen: DBPathInUse: Unable to lock the lock file: /u03/mongodb/db/mongod.lock (Unknown error). Another mongod instance is already running on the /u03/mongodb/db directory
这个错误的原因是mongodb上次关闭异常,先通过mongo --repair进行修复,修复后若还有问题,通过rm mongod.lock -rf删除lock文件,rm diagnostic.data/* -rf删除数据文件。
2.Failed to set up listener: SocketException: Address already in use
上个问题解决后又报地址已被使用,ps aux | grep mongod查看进程,kill -9 进程号杀死进程。

附:正确关闭mongodb数据库的方法:
正确的关闭方法:停止Mongodb

  1. 查看进程,使用kill命令;不能使用kill -9。
  2. 在命令行使用shutdown命令。

robo3 远程连接

最后使用robo3连接mongodb,终于成功了!
Centos7安装mongodb
Centos7安装mongodb

相关推荐