一、安装
把mongodb安装包上传到服务器,然后解压缩
# tar zxvf mongodb-linux-x86_64-rhel70-4.2.8.tgz
# mv mongodb-linux-x86_64-rhel70-4.2.8 /usr/local/mongodb
cd /usr/local/mongodb
# vi /etc/profile.d/mongo.sh
export MONGO_HOME=/usr/local/mongodb
export PATH=$MONGO_HOME/bin:$PATH
# source /etc/profile
# mkdir -p /data/mongodb/db/
# mkdir -p /data/mongodb/log/
# cd /data/mongodb/
二、编辑配置文件
可以这样启动(但是不推荐): ./mongod --port=27017 --host=127.0.0.1 --dbpath=/data/db --logpath=/data/log/mongo.log --fork=true
推荐使用配置文件的方式启动mongodb
# vi /etc/mongod.conf
dbpath=/data/mongodb/db
logpath=/data/mongodb/log/mongod.log
bind_ip=127.0.0.1
port=27017
fork=true #以守护进程的方式运行,创建服务器进程
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)
三、创建mongod用户
groupadd mongod
useradd mongod -g mongod
chown -R mongod:mongod /data/mongodb/
然后切换到mongod启动
# su mongod
$ mongod -f /etc/mongod.conf 非auth启动,创建用户
$ mongo
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "dbAdmin", db: "crm" } ]
}
)
也可以创建其他用户,内建的role参见 https://docs.mongodb.com/manual/core/security-built-in-roles/
管理员登录,然后切换到这个库下
use crm
db.createUser(
{
user: "crm",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "crm" }]
}
)
//也可以修改用户的角色
db.updateUser("admin",{roles:[{"role":"root","db":"admin"}]});
//也可以修改用户的密码
db.updateUser("admin",{pwd:"此处忽略"});
use test
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)
db.shutdownServer()
quit()
vi /etc/mongod.conf 添加
auth=true
#绑定的IP,0.0.0.0标示任何ip都可以访问,127.0.0.1标示本机访问
bind_ip=127.0.0.1
# su mongod
$ mongod -f /etc/mongod.conf 开启授权后,用授权的用户访问
> use admin
> db.auth("myUserAdmin", "abc123")
参考资料:
https://docs.mongodb.com/manual/reference/configuration-options/
https://docs.mongodb.com/manual/tutorial/enable-authentication/
其他语法
mongod --port 27017 --dbpath /data/db1
mongo --port 27017 --host 127.0.0.1
四、开机自启动
设置开机自启动服务, 编写自定义服务
vi /lib/systemd/system/mongod.service
[Unit]
Description=mongod
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# chmod 754 mongod.service
# systemctl start mongod.service 启动服务
# systemctl stop mongod.service 关闭服务
# systemctl enable mongod.service 开机启动
忘记了mongdb的用户密码怎么办?
# vi /etc/mongod.conf 将 auth = true 注释掉,或者改成 false
kill -9 pid
# su mongod
$ mongod -f /etc/mongod.conf
mongo
> use admin
> db.system.users.find()
> db.system.users.remove({})
> db.createUser( # 添加新帐户
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
> db.shutdownServer()
# vi /etc/mongod.conf # 恢复 auth = true
kill -9 pid
mongod -f /etc/mongod.conf
本文内容到此结束。