Linux 下安装 MongoDB 下载安装包 官方下载:https://www.mongodb.com/try/download/community
可以下载到本地上传至服务器; 也可以 Copy Link
后到服务器命令下载 1 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.3.tgz
安装 解压安装包 1 tar -zxvf mongodb-linux-x86_64-rhel80-5.0.3.tgz
将解压后的目录移动到 /usr/local
目录下,并改名为 mongodb
1 mv mongodb-linux-x86_64-rhel80-5.0.3 /usr/local /mongodb
进入 mongodb
目录,并创建文件夹 data
,在 data
文件夹下再创建 db
文件夹(用于存放数据库数据)和 log
文件夹(存放 mongo
日志),然后为其设置可读写权限 1 2 3 4 5 6 7 8 cd /usr/local /mongodb/mkdir data data/db data/log sudo chmod 666 data/db data/log /
配置文件 在 mongodb
目录下新建配置文件 mongodb.conf
(可选,但建议配置),打开文件输入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 dbpath=/usr/local /mongodb/data/db logpath=/usr/local /mongodb/data/log /mongodb.log logappend=true port=27017 auth=true fork=true bind_ip=0.0.0.0
配置环境变量 1 2 3 4 5 6 7 8 9 vim /etc/profile export MONGODB_HOME=/usr/local /mongodbexport PATH=$PATH :$MONGODB_HOME /binsource /etc/profile
启动 1 mongod -f /usr/local /mongodb/mongodb.conf
验证 使用安装目录下 bin
目录的 mongo
客户端命令连接和访问 MongoDB
,默认会链接到 test
数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [root@10-9-66-224 mongodb] MongoDB shell version v5.0.3 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("5bae68b0-2b00-4b0c-b154-4a5e15f09c86" ) } MongoDB server version: 5.0.3 ================ Warning: the "mongo" shell has been superseded by "mongosh" , which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in an upcoming release. We recommend you begin using "mongosh" . For installation instructions, see https://docs.mongodb.com/mongodb-shell/install/ ================ Welcome to the MongoDB shell. For interactive help , type "help" . For more comprehensive documentation, see https://docs.mongodb.com/ Questions? Try the MongoDB Developer Community Forums https://community.mongodb.com > db test >
其他配置 开放端口 1 2 3 4 5 6 firewall-cmd --zone=public --add-port=27017/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --list-ports
检查服务状态 1 2 3 4 5 ps aux | grep mongo netstat -lanp | grep 27017
停止服务 1 2 3 4 5 kill -9 PIDmongod -f /usr/local /mongodb/mongodb.conf --shutdown
开机自启动 1 2 vim /lib/systemd/system/mongodb.service
配置文件中填写以下内容
1 2 3 4 5 6 7 8 9 10 11 [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking 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
依次执行以下四个命令,使之生效
1 2 3 4 5 6 7 8 9 10 11 systemctl start mongodb.service systemctl status mongodb.service systemctl enable mongodb.service systemctl daemon-reload
启动重启停止服务 1 2 3 systemctl start mongodb.service systemctl restart mongodb.service systemctl stop mongodb.service
角色及用户名配置 配置文件中,指定了 auth=true
,即开启了认证,所以链接后需要认证才能执行操作。默认情况下,MongoDB
是没有管理员账户的,所以我们需要在 admin
数据库中使用 db.createUser()
命令添加管理员帐号或其他角色。
内置角色 数据库用户角色:read
、readWrite
数据库管理角色:dbAdmin
、dbOwner
、userAdmin
集群管理角色:clusterAdmin
、clusterManager
、clusterMonitor
、hostManager
备份恢复角色:backup
、restore
所有数据库角色:readAnyDatabase
、readWriteAnyDatabase
、userAdminAnyDatabase
、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
创建管理员账号 切换到 admin 数据库,使用以下命令创建管理账号,拥有操作所有数据库权限
1 2 3 4 5 6 7 8 9 mongo use admin db.createUser({user:"admin" ,pwd :"123456" ,roles:[{role:"userAdminAnyDatabase" ,db:"admin" }]})
验证 使用 mongo
命令连接上之后,如果不进行 db.auth("用户名","密码")
进行用户验证的话,是执行不了任务命令的,只有通过认证才可以。注意,每一个用户都需要在创建这个用户的认证库下进行认证。
1 2 3 4 5 6 7 mongo use admin db.auth("admin" ,"123456" ) show tables
可视化工具连接 我使用的是 Navicat 15 for MongoDB