安装与配置MongoDB 6.0以支持远程连接
目录
- 安装
curl
工具 - 下载并导入MongoDB 6.0 PGP密钥
- 向APT导入MongoDB 6.0版软件包的资源链接
- 安装MongoDB依赖
libssl1.1
- 安装MongoDB
- 启动并检查MongoDB服务状态
- 进入MongoDB Shell交互式执行环境
- 设置MongoDB开机自启
- 配置MongoDB允许远程连接
- 修改MongoDB配置文件
- 配置防火墙
- 设置用户认证
- 远程连接MongoDB
1. 安装curl
工具
在Ubuntu系统中新建一个终端,执行如下命令来安装curl
:
sudo apt install curl
2. 下载并导入MongoDB 6.0 PGP密钥
下载MongoDB 6.0版本的PGP密钥文件并检查公钥是否导入成功:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-6.0.asc
检查公钥是否导入成功:
apt-key list
3. 向APT导入MongoDB 6.0版软件包的资源链接
添加MongoDB 6.0版软件包的APT源:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
更新APT包列表:
sudo apt update
升级已安装的包(可选):
sudo apt upgrade -y
4. 安装MongoDB依赖libssl1.1
由于某些版本的MongoDB依赖于特定版本的libssl
库,在Ubuntu 22.04上需要手动安装libssl1.1
。执行以下命令:
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update
sudo apt-get install libssl1.1
5. 安装MongoDB
开始安装MongoDB:
sudo apt install -y mongodb-org
6. 启动并检查MongoDB服务状态
启动MongoDB服务并检查其状态:
sudo systemctl start mongod
sudo systemctl status mongod
如果一切正常,你会看到类似active (running)
的状态信息。
7. 进入MongoDB Shell交互式执行环境
在新的终端窗口中,使用以下命令进入MongoDB Shell:
mongosh
在MongoDB Shell中,可以使用show dbs
命令查看所有数据库。默认情况下,MongoDB自带三个数据库:local
、config
和admin
,不建议在这三个数据库中添加自己的数据表,应该创建新的数据库。
退出MongoDB Shell:
exit
或者直接按Ctrl+C
组合键。
8. 设置MongoDB开机自启
为了确保MongoDB服务在系统启动时自动运行,可以使用以下命令:
sudo systemctl enable mongod
9. 配置MongoDB允许远程连接
9.1 修改MongoDB配置文件
编辑MongoDB的配置文件/etc/mongod.conf
:
sudo nano /etc/mongod.conf
找到bindIp
设置,并将其值更改为服务器的公共IP地址或0.0.0.0
以监听所有网络接口:
net:
port: 27017
bindIp: 0.0.0.0 # 绑定所有IP地址
保存文件并退出编辑器。
重启MongoDB服务使更改生效:
sudo systemctl restart mongod
9.2 配置防火墙
确保服务器的防火墙规则允许外部流量通过MongoDB使用的端口(默认是27017)。如果你使用的是ufw
,可以添加如下规则:
sudo ufw allow 27017/tcp
9.3 设置用户认证
为了安全起见,建议启用MongoDB的访问控制并创建管理员用户。以下是简要步骤:
- 启动无认证模式:先不要启用认证,以便我们可以创建第一个管理员用户。
- 进入Mongo Shell:
mongosh
- 切换到
admin
数据库:use admin
- 创建管理员用户:
db.createUser({ user: "yourAdminUsername", pwd: "yourStrongPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] })
- 启用访问控制:编辑
/etc/mongod.conf
文件,在security
部分添加或修改authorization
参数以启用认证:security: authorization: "enabled"
- 再次重启MongoDB服务:
sudo systemctl restart mongod
10. 远程连接MongoDB
现在,你可以在远程机器上使用MongoDB客户端(如mongosh
)通过提供用户名、密码和服务器地址来连接到MongoDB实例。例如:
mongosh -u "yourAdminUsername" -p "yourStrongPassword" --host your.server.ip.address --authenticationDatabase admin
请确保替换yourAdminUsername
、yourStrongPassword
和your.server.ip.address
为实际的值。
注意事项
- 确保你的MongoDB版本与提供的命令兼容。
- 如果你在云服务提供商处托管服务器,请确保检查云服务提供商的安全组或防火墙设置,以允许入站TCP流量到达MongoDB端口。
- 在生产环境中,考虑使用SSL/TLS加密连接,以增加安全性。
上述操作来自视频:
链接: bilibili-Ubuntu22.04版本安装MongoDB6.0全过程