Linux CentOS7 环境下安装 MongoDB

一、环境准备

操作系统:Linux CentOS 7.9
安装包:mongodb-linux-x86_64-rhel70-4.4.29.tgz

二、安装包下载

官网下载地址:https://www.mongodb.com/try/download/community
image

三、软件安装和启动

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
image
解压即可使用

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数据库
posted @ 2024-05-07 16:31  村尚chun叔  阅读(737)  评论(0编辑  收藏  举报