- 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】
- 【创作不易,点个赞就是对我最大的支持】
前言
仅作为学习笔记,供大家参考
前期准备
一、下载MongoDB
MongoDB3.0.6
链接:https://pan.baidu.com/s/1T1dVzieCXqEWuOPRiYO9gw
提取码:i5cj
二、使用ftp上传tgz包到/usr/local/src/MongoDB路径下
这个工具版本免安装解压就能用
ftp解压版
链接:https://pan.baidu.com/s/1U6zTzA1m_fIG-GBT_WMtsg
提取码:h70j
三、解压tgz包,将解压后的文件夹重命名为mongodbserver
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
如图解压完毕:
四、进入mongodbserver文件夹,创建db、log、etc文件夹
五、进入mongodbserver/etc文件夹下创建mongodb.conf,并设置以下参数
1.
vim mongodb.conf
2.
dbpath=/usr/local/src/MongoDB/mongodbserver/db #数据库存放的位置
logpath=/usr/local/src/MongoDB/mongodbserver/log/mongodb.log #日志存放的位置
port=27017 #端口号
fork=true #是否以后台进程启动
journal=false #启用日志文件
storageEngine=mmapv1
nohttpinterface=true #是否支持http访问
#auth=true #是否以安全认证方式运行,默认是不认证的非安全方式
如图:
六、启动mongodb
进入 /usr/local/src/MongoDB/mongodbserver/bin
文件夹下
输入命令:./mongod --config /usr/local/src/MongoDB/mongodbserver/etc/mongodb.conf
启动:
./mongo MongoDB shell version: 3.0.6
七、防火墙打开27017端口
/sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
/etc/rc.d/init.d/iptables save
测试: 在浏览器中输入:http://192.168.22.130:27017 进行访问
八、设置用户名和密码
1、输入./mongo 进入mongo命令行(进入bin文件夹)
2、选择admin数据库: >use admin
3、创建用户并授予权限:>db.createUser({user: “root”,pwd: “123456”,roles: [{ role: “userAdminAnyDatabase”, db:“admin” }]});
注:
如果设置了用户名密码 但是无法操作增删查改
报错:
2019-04-29T19:09:25.965+0800 E QUERY Error: listCollections failed: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listCollections: 1.0 }",
"code" : 13
}
at Error (<anonymous>)
at DB._getCollectionInfosCommand (src/mongo/shell/db.js:646:15)
at DB.getCollectionInfos (src/mongo/shell/db.js:658:20)
at DB.getCollectionNames (src/mongo/shell/db.js:669:17)
at shellHelper.show (src/mongo/shell/utils.js:625:12)
at shellHelper (src/mongo/shell/utils.js:524:36)
at (shellhelp2):1:1 at src/mongo/shell/db.js:646
解决方式 更该用户的权限
经过查询错误解决办法,了解到是集群管理权限不够,添加相应权限之后就可以解决问题,变更用户权限如下
db.updateUser(
"root",
{
roles :
[
{"role" : "userAdminAnyDatabase","db" : "admin"},
{"role" : "dbOwner","db" : "admin"},
{"role" : "clusterAdmin", "db": "admin"}
]
}
)
4、使用>show users或>db.system.users.find()查看已有用户
5、添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,
(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭.
退出
6、使用权限方式启动MongoDB
mongodb.conf在配置文件中添加:auth=true , 然后启动。
7、输入./mongo命令,进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。
./mongo
>use admin
>db.auth(“pfnieadmin”,“123456”) #认证,返回1表示成功
注:关闭mongodb的方式
1、mongo命令行,使用 关闭
2、进入bin文件夹下 使用./mongod -shutdown ./mongod -shutdown -dbpath=/usr/local/src/MongoDB/mongodbserver/db
3、killall mongod 杀死进程(不推荐使用)
查看mongodb是否启动:lsof -i :端口 如:lsof -i :27017
九、将mongod路径添加到系统路径中,方便随处执行mongod命令(设置环境变量)
1、编辑/etc/profile文件,添加export PATH=$PATH:/usr/local/src/MongoDB/mongodbserver/bin
vim /etc/profile
2、执行source /etc/profile,使系统环境变量立即生效
十、将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令
执行命令: ln -s /usr/local/src/MongoDB/mongodbserver/bin/mongo /usr/bin/mongo
测试
十一、测试是否方便随处执行mongo命令
cd /
输入 “mongo” 命令,进入mongo shell,进行测试
十二、MongoDB设置为系统服务并且设置开机启动
1、首先添加MongoDB系统服务,命令如下:vim /etc/rc.d/init.d/mongod
2、打开编辑器后,我们将下面的配置粘贴进去,然后保存(注意:mongodb.conf文件的路径)
start() {
/usr/local/src/MongoDB/mongodbserver/bin/mongod --config /usr/local/src/MongoDB/mongodbserver/etc/mongodb.conf
}
stop() {
/usr/local/src/MongoDB/mongodbserver/bin/mongod --config /usr/local/src/MongoDB/mongodbserver/etc/mongodb.conf --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo
$"Usage: $0 {start|stop|restart}"
exit 1
esac
3、保存完成之后,添加脚本执行权限,命令如下:chmod +x /etc/rc.d/init.d/mongod
4、启动MongoDB:service mongod start
关闭MongoDB:service mongod stop