先放一张官方文档中版本兼容的图
我centOS中是python3.4,选择了mongo3.4,按照文档进行安装
1.建立一个yum调用的安装文件
vim /etc/yum.repos.d/mongodb-org-3.4.repo
2.里面写入如下内容
[mongodb-org-3.4] name=MongoDB 3.4 Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=0 enabled=1
3.使用yum安装mongo,这样安装默认安装了MongoDB的一些工具,如果想手动安装,点这里看文档
yum install -y mongodb-org
4.开启mongodb
service mongod start
如果能成功启动的话表示安装成功
有可能会显示让你用systemctl启动,Redirecting to /bin/systemctl start mongod.service
systemctl restart mongod ; systemctl status mongod
如果status显示的是failed
less /var/log/mongodb/mongod.log 看日志,
一般可能是
用chmod修改一下文件权限或者chown修改一下/var/lib/mongod的owner和group,都改成mongod(其实默认的就是这个
如果还不行...卸载重装...
5.接下来修改配置文件,端口信息、访问ip
vim /etc/mongod.conf
port 27017 (可修改为自己需要的端口)
bindIp:127.0.0.1(默认只能本地访问,修改为0.0.0.0则都可以访问)
6.mongodb默认不需要用户名密码,如果修改了bindIp,是很危险的。所以现在设置用户名密码
进入mongo命令行
mongo 127.0.0.1:27017
mongodb默认有两个数据库,一个是admin, 一个是local.可以使用show dbs命令查看
进入admin数据库
use admin
创建用户,并设置权限
db.createUser({user: "root",pwd: "root",roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]})
role为权限组,在文档中有详细的说明,在网上借鉴了有中文的
All build-in Roles Database User Roles: read|readWrite 数据库用户角色:读|读写 Database Admion Roles: dbAdmin|dbOwner|userAdmin 数据库管理角色:数据库管理员|数据库所有者|用户管理 Cluster Admin Roles: clusterAdmin|clusterManager|clusterMonitor|hostManager 集群管理角色: Backup and Restoration Roles: backup|restore All-Database Roles: readAnyDatabase|readWriteAnyDatabase|userAdminAnyDatabase|dbAdminAnyDatabase 所有数据库角色:读所有数据库|读写所有数据库|所有数据库的用户管理员|所有数据库的管理员 Superuser Roles: root
启用用户验证启动mongo(记得先停止服务)
mongod --auth --config /etc/mongod.conf
开机自启mongo配置
echo "mongod --auth --config /etc/mongod.conf" >> /etc/rc.local
7.带用户名密码的登录
mongo 127.0.0.1:27017 use admin db.auth("root","root")
远程连接
我使用的是robo 3t 以前叫Robomongo
没什么需要注意的地方
用户名密码在authentication里填
上面database可以填admin,根据描述是连接所有数据库,也可以填你要连的那个
8.mongodb卸载
systemctl stop mongod #停止服务 rm -rf /var/log/mongodb #删除日志 rm -rf /var/lib/mongo #删除数据 yum erase $(rpm -qa | grep mongodb-org) #删除软件包
参考:
mongoDb 官方文档: https://docs.mongodb.com/manual/tutorial/enable-authentication/