Linux CentOS7 环境下安装 MongoDB
一、环境准备
操作系统:Linux CentOS 7.9
安装包:mongodb-linux-x86_64-rhel70-4.4.29.tgz
二、安装包下载
官网下载地址:https://www.mongodb.com/try/download/community
三、软件安装和启动
3.1 将下载好的安装包上传到 Linux 服务器某个目录下,使用以下命令解压压缩包
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.29.tgz
3.2 将解压后的目录移动到 /usr/local 目录下,并改名为 mongodb
mv mongodb-linux-x86_64-rhel70-4.4.29 /usr/local/mongodb
3.3 进入 mongodb 目录,并创建文件夹 data,在 data 文件夹下再创建 db 文件夹(用于存放数据库数据)和 log文件夹(存放 mongo 日志)。然后为其设置可读写权限
# 进入目录
cd /usr/local/mongodb/
# 创建三个文件夹
mkdir data data/db data/log
# 设置可读写权限
sudo chmod 666 data/db data/log/
3.4 在 mongodb 目录下新建配置文件 mongodb.conf(可选,但建议配置),打开文件输入以下内容
# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0
3.5 配置环境变量
vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile
3.6 完成以上步骤即可启动 Mongo 服务
# -f 等同于--config
# mongod -f /usr/local/mongodb/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1566
child process started successfully, parent exiting
3.7 验证,使用安装目录bin下的mongo客户端命令连接和访问MongoDB,默认会链接到 test 数据库
# mongo
MongoDB shell version v4.4.29
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("10140585-eeaf-4ff7-b160-5aab23f80fe0") }
MongoDB server version: 4.4.29
> db
test
四、配置开机自启动
创建启动用户
groupadd mongodb
useradd -g mongodb -G wheel -d /home/mongodb -m -s /bin/bash mongodb
passwd mongodb
chown -R mongodb.mongodb /usr/local/mongodb/
创建开机启动文件
vi /usr/lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
User=mongodb
Group=mongodb
PIDFile=/usr/local/mongodb/data/db/mongod.lock
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start mongodb.service
systemctl restart mongodb.service
systemctl stop mongodb.service
五、用户角色和密码配置
启动 MongoDB 服务默认是没有账号密码的,即连接上即可进行各种操作。
但是我们在启动配置文件中,指定了 auth=true,即开启了认证,所以链接后需要认证才能执行操作。默认情况下,MongoDB 是没有管理员账户的,所以我们需要在 admin 数据库中使用 db.createUser() 命令添加管理员帐号或其他角色。
5.1 内置角色
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
# mongo
> use admin
> db.createUser({user:"root",pwd:"Funi_R00T",roles:[{role:"root",db:"admin"}]})
> db.auth("root","Funi_R00T")
> use funi
> db.createUser({user:'funi',pwd:'funi.com',roles:[{role:'dbOwner',db:'funi'}]})
> db.auth("funi","funi.com")
> exit
# 开启认证后./mongo 进入mongodb后需要认证
# use admin
# db.auth("root","Funi_R00T")
六、数据库导入与导出
MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装,而是需要自己手动安装。
官方网站下载链接:Download MongoDB Command Line Database Tools | MongoDB
解压即可使用
mongodump -d funi -o /tmp/funi_mongodb -u funi -p funi.com 备份funi数据库
mongorestore -d funi /tmp/funi_mongodb/* -u funi -p funi.com 恢复funi数据库