MongoDB安装及配置(centOS7)
1.下载安装包:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.4.tgz
2.解压:
tar -zxvf mongodb-linux-x86_64-rhel62-4.0.4.tgz
3.将解压包移动到指定的目录(本人指定的是/usr/mongodb/)
mv mongodb-linux-x86_64-rhel62-4.0.4 /usr/mongodb/ #事先在/usr/下创建目录 mongodb。mkdir mongodb
4.创建库文件目录和日志文件目录 (/usr/mongodb/data/db 和 /usr/mongodb/logs)
cd /usr/mongodb/
mkdir -f data/db
mkdir logs
5.创建配置文件并配置(mongodb.conf)
cd /usr/mongodb/mongodb-linux-x86_64-rhel62-4.0.4/bin
vim mongodb.conf
配置如下表,其他配置属性见附录表1
dbpath=/usr/mongodb/data/db #数据库日志存放目录 logpath=/usr/mongodb/logs/mongodb.log #以追加的方式记录日志 logappend = true #端口号 默认为27017 port=27017 #以后台方式运行进程 fork=true #关闭用户认证 auth=false #mongodb所绑定的ip地址 bind_ip = 127.0.0.1 #启用日志文件,默认启用 journal=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为falsequiet=true |
6.环境变量配置
vim ~/.bashrc #配置保存完,不能立即生效,重新登陆即可生效
配置如下:
# mongodb export MONGODB_HOME=/usr/mongodb/mongodb-linux-x86_64-rhel62-4.0.4 export PATH=$PATH:$MONGODB_HOME/bin |
7.开放端口(27017)
如果firewalld没有开启,需开启:
systemctl start firewalld.service
关于firewalld 详解:https://www.cnblogs.com/softidea/p/5732409.html
打开端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
查看端口
firewall-cmd --permanent --query-port=27017/tcp
重读防火墙
firewall-cmd --reload
8.启动/关闭
mongod -f mongodb.conf #启动
mongod -f mongodb.conf --shutdown #关闭
9.连接
mongo #默认连接的是test数据库
10.创建用户
创建管理员
use admin #切换数据库
db.createUser({user:"dbroot",pwd:"dbroot",roles:["userAdminAnyDatabase"]}) #创建用户
db.auth("dbroot","dbroot") #授权认证,1:代表认证成功
开启用户认证,即修改配置文件 mongodb.conf,修改完重启服务
#开启用户认证 auth=true |
创建普通用户
use test
db.createUser({user:"cool",pwd:"cool",roles:[{role:"readWrite",db:"test"}]})
使用刚创建的用户登陆
exit #退出mongodb
mongo 127.0.0.1/test -u cool -p #登陆
11.角色说明:
权限 | 说明 |
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 |
root | 只在admin数据库中可用。超级账号,超级权限 |
更多关于用户权限的说明参照:https://docs.mongodb.com/manual/core/security-built-in-roles/
附录1
配置参数含义--quiet
---fastsync # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
master
replSet arg
configsvr |
参考:
https://www.cnblogs.com/clsn/p/8214194.html#auto_id_30
https://blog.youkuaiyun.com/guoxingege/article/details/47339885