centos7安装配置mongodb远程访问

配置仓库文件

针对MongoDB版本为3.6的:

vim /etc/yum.repos.d/mongodb-org-3.6.repo

复制以下代码到文件中(添加这一段是为了后面安装做准备)

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

安装

sudo yum install -y mongodb-org

稍等几秒钟,mongodb便安装完成。

注:此时mongodb默认配置:
存储数据文件目录为: /var/lib/mongo
存储日志文件目录:/var/log/mongodb

启动

先通过cat /etc/passwd查看系统所有的用户信息,经过上面的步骤,mongodb自动给我们添加了mongod用户如下

注:mongodb成功安装后,会看到类似如下信息:mongod: x:977:977::/home/mongod:/bin/bash
若这里显示为:mongod: x:977:977::/home/mongod:/bin/bash/false.
则说明该用户不能正常切换,需要先用usermod命令修改shell:usermod -s /bin/bash mongod

这里有个坑!!!!

我们这个时候切换用户,会发现切换不了,一直提示无权限

su mongod

但是我们新建一个用户test,发现自己新建的用户是可以正常切换的,so~ 这里我建议直接把mongodb给我咱们添加的用户给删掉,然后自己新建一个mongod用户。

创建用户:adduser mongod
删除用户:userdel username

再把咱们新建的mongod用户添加一下

chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb

切换用户并启动mongodb

su mongod
service mongod start

看一下咱们启动成功没有

systemctl status mongod.service

耀眼的绿色active!!!如果是红色fail那就需要在检查一下问题了
centos7安装配置mongodb远程访问_第1张图片

配置远程访问

1、配置版本号

数据库启动后运行mongo进入mongodb命令行界面查看数据库版本,如下

use admin
db.system.version.find()

在这里插入图片描述
如果是如上结果,因为数据库版本不一致,远程连接时会出现Authorization failed错误。
解决方法:

use admin
switched to db admin
db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}}) //这里3代表3.x

如果是如下结果,则添加一条记录:

[root@aliyun ~]# mongo MongoDB shell version v3.4.7 connecting to:
mongodb://127.0.0.1:27017 MongoDB server version: 3.4.7
use admin
switched to db admin
db.system.version.find()
{ “_id” : “featureCompatibilityVersion”, “version” : “3.4” }

db.system.version.insert({"_id":"authSchema","currentVersion":3})
WriteResult({ “nInserted” : 1 })
db.system.version.find()
{ “_id” : “featureCompatibilityVersion”, “version” : “3.4” }
{ “_id” : “authSchema”, “currentVersion” : 3 }

2、配置数据库连接的用户名和密码

切换到admin,创建数据库连接密码,如下

切换数据库,没有就创建数据库用use
use admin
创建连接密码
db.createUser({user:“你的用户名”,pwd:“你的密码”,roles:[{role:“userAdminAnyDatabase”,db:“admin”}]})

centos7安装配置mongodb远程访问_第2张图片
3、配置数据库配置文件以允许远程访问

创建完后在配置文件中开启数据库身份验证和允许远程ip访问

vim /etc/mongod.conf(我的配置文件目录是这个,根据自己的目录定)

添加如下配置,特别注意,之前的security是注释掉的,一定要打开,还有就是多一个空格少一个空格都运行不起来,切记!!!
centos7安装配置mongodb远程访问_第3张图片
重启数据库

service mongod restart

看看我们创建的用户账号成功没有,为1就成功,为0失败

mongo
use admin
db.auth("用户名","密码")

在这里插入图片描述
4、开放27017端口

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

这里又有一个坑!!!!!

我们所有东西都设置完了,在远程用cmd试着连一下,发现连接时一直提示连接超时,没错,这是服务器的防火墙搞的鬼,我们只需要关闭服务器的防火墙就好了

systemctl stop firewalld //这是centos-7的关闭方法

通过iptables -L查看防火墙状态
看看关闭成功没有,如果是下面这样就表示关闭成功了
centos7安装配置mongodb远程访问_第4张图片
好了~ 大功告成!
centos7安装配置mongodb远程访问_第5张图片
值得一提的是,如果是租用服务器比如像阿里云的,需要到控制台开启服务器入方向的27017端口

你可能感兴趣的:(mongodb,服务器)