我安装的MongoDB是4.0+的版本,网上大部分教程都是4.0以下的版本,它们的配置是有很大不一样的。
升级yum
Centos服务器中都会自带yum,它是CentOS中的Shell前端软件包管理器,犹如NPM。
我们先升级一下它。
yum update
安装MongoDB
先来到yum的路径下,新建一个repo文件。
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。
vim /etc/yum.repos.d/mongodb-org-4.0.repo
然后按键盘上的 A
进入编辑模式,粘贴以下内容。
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
然后按 Esc
退出编辑模式,输入 :wq
保存退出。
然后执行下列命令进行下载安装MongoDB。
sudo yum install -y mongodb-org
安装好后,我们修改 /etc/yum.conf
文件,加入如下信息,禁用自动升级。
修改文件内容使用 vim
,跟上面一样,就不重复说了。
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
修改完文件后,我们执行下列命令启动MongoDB服务。
sudo service mongod start
相关配置
首先我们先配置一下开机自启动。
sudo chkconfig mongod on
systemctl enable mongod.service
紧接着我们配置一下用户。
先执行以下命令进入MongoDB shell。
mongo --port 27017
然后进入admin数据库。
use admin
然后创建一个超级用户。
db.createUser({user: "root",pwd: "12345678",roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]})
创建完成后, Ctrl+C
退出MongoDB shell,然后再重新进入,验证用户是否存在。
use admin
db.auth("root","12345678")
输出 1
表示验证成功。
启动身份验证
修改MongoDB的配置文件。
vim /etc/mongod.conf
将 bindIp
设置为 0.0.0.0
,这样外网也能够访问,默认为 127.0.0.1
,只能在内网访问。
net:
port: 27017
bindIp: 0.0.0.0
然后启动身份验证配置。
security:
authorization: enabled
然后重启MongoDB服务即配置成功。
sudo service mongod restart
之后我们就可以用密码连接MongoDB进去MongoDB shell。
mongo --port 27017 -u "root" --authenticationDatabase "admin" -p
开启防火墙
# 只对192.168.30.189开放27017端口
iptables -A INPUT -p tcp -s 192.168.30.189 --dport 27017 -j ACCEPT
# 对外开放27017端口
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
使用Robo 3T本地连接数据库
Robo3T可以远程连接你服务端的MongoDB数据库,虽然操作不了太多东西,但至少可以查看你数据库里的内容。
进入Robo3T官网即可下载安装。
安装成功后,打开Robo3T,创建新的连接。在Connection中,Name自己随便取,Address填写你的IP地址,后面端口号填写27017。
然后在Authentication,将Perform authentication打勾,User Name和Password填写你刚刚配置用户的账号密码。
点击Save保存,然后再点击Connect,就连接成功。