Linux 安装 MongoDB 并配置外部访问
安装 MongoDB
- 导入 MongoDB 公共 GPG 密钥
sh
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
- 创建列表文件
sh
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
- 重新加载本地包数据库
sh
apt-get update
- 安装 MongoDB
sh
apt-get install -y mongodb-org
启用用户验证
- 编辑
mongod.conf
文件
sh
vim /etc/mongod.conf
- 修改其中的
bindIp
与authorization
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: enabled
- 重启 MongoDB 服务,开放27017端口
添加管理员用户
- 使用
mongosh
进入 MongoDB 命令行工具 - 进入
admin
数据库
js
use admin
- 配置管理员密码与权限
js
db.createUser({user: '<username>', pwd: '<password>', roles: ['root']})
- 身份验证(返回 1 表示验证成功, 如果是 0 表示验证失败。)
js
db.auth('root', 'YourPassword')
添加普通用户
- 显示数据库
js
show dbs
- 选择数据库
js
use <database_name>
- 给该数据库添加用户
js
db.createUser({user: '<username>', pwd: '<password>', roles: [{role: 'dbOwner', db: '<database_name>'}]})
删除普通用户
- 显示数据库
js
show dbs
- 选择数据库
js
use <database_name>
- 显示用户
js
show users
- 删除用户
js
db.dropUser('<username>')
常见错误
/tmp/mongodb-27017.sock
MongoDB 进程没有权限删除或修改该套接字文件,错误信息如下:
sh
{"t":{"$date":"2024-07-30T10:25:37.033+08:00"},"s":"E", "c":"NETWORK", "id":23024, "ctx":"initandlisten","msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}
解决方法: 删除该文件 rm /tmp/mongodb-27017.sock
,然后重启 MongoDB systemctl restart mongod
预览: