一、安装环境
- centos7 64位
- MongoDB 3.4版本
- 采用yum安装
二、建立一个yum
vi /etc/yum.repos.d/mongodb-org-3.4.repo
写下下面的内容
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
三、安装MongoDB以及相关工具
sudo yum install -y mongodb-org
四、启动/停止MongoDB
启动MongoDB
sudo service mongod start
停止MongoDB
sudo service mongod stop
五、更改配置文件
vi /etc/mongod.conf
更改第28行 port 2701为你需要更改的端口(这是MongoDB默认的监听端口)
更改第29行 bindIp: 127.0.0.1为0.0.0.0(MongoDB默认只能本地访问)PS:个人建议此处添加你需要连接MongoDB服务器的IP地址、而不是改成0.0.0.0。这样做会更安全
按照配置文件 /etc/mongod.conf启动MongoDB
mongod --config /etc/mongod.conf
启动成功,这样外网就可以访问MongoDB,由于mongoDb默认是不需要账号密码访问的,从安全的角度考虑,我们应该给MongoDB加上密码
六、添加账号密码
打开MongoDB的客户端,代码中的IP和端口是默认的,你可以改为你们自己刚才设置的
mongo 127.0.0.1:27017
use admin db.createUser({user: "admin",pwd: "admin",roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]})
role的权限可参考,上面例子中采用的是权限是 readWriteAnyDatabase
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
退出客户端
exit
结束MongoDB进程
ps -e | grep mongod
找到进程,然后kill掉进程
带认证模式开启Mongod
mongod --auth --config /etc/mongod.conf
加入开机自启动
echo "mongod --auth --config /etc/mongod.conf" >> /etc/rc.local
七、带账号密码链接MongoDB
mongo 127.0.0.1:27017 use admin db.auth("账号","密码")
好了,现在我们可以带通过账号密码的方式链接MongoDb了
通过python的链接方式为
# -*- coding:utf-8 -*- from pymongo import MongoClient conn = MongoClient('mongodb://账号:密码@ip:端口/admin') db = conn.mydb #链接mydb数据库,没有则创建 my_set = db.test_set #打开test_set集合,没有则创建 my_set.insert({"name":"zhangsan","age":18}) #写入这行文档
参考文档
- https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat/
- http://cuiqingcai.com/4020.html