在华为云ECS上安装MongoDB,最稳妥的方式是使用官方源进行部署,通过配置yum或apt源并执行几条命令即可完成,核心步骤包括安全组放行27017端口、调整bindIp以及创建管理员用户。参考2
华为云安装mongodb步骤详解:环境准备与源配置
在华为云控制台准备好一台ECS实例后,首先要确认操作系统版本,业内专家指出,华为云ECS支持CentOS 7/8、Ubuntu 20.04/22.04以及Debian等主流Linux发行版,选择操作系统时需要考虑MongoDB版本兼容性,例如MongoDB 6.0及以上版本对CentOS 7只提供有限支持,多数情况下推荐使用Ubuntu 22.04或CentOS 8.4。
安全组规则与网络环境
华为云的安全组默认仅开放22端口,安装MongoDB前必须添加一条入方向规则,允许访问27017端口,操作路径:在华为云控制台找到“弹性云服务器”对应实例,点击“安全组”->“配置规则”->“添加规则”,协议选择TCP,端口27017,源地址根据实际需求填写(如0.0.0.0/0表示公网访问,但存在安全隐患,建议仅放行业务IP)。
导入MongoDB官方GPG密钥
连接到ECS后,使用SSH工具登录,以CentOS为例,执行以下命令导入官方密钥:
sudo rpm --import https://www.mongodb.org/static/pgp/server-6.0.asc
对于Ubuntu,需要先安装gnupg并添加密钥:
sudo apt-get install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg
添加yum/apt源
创建MongoDB的yum源文件(CentOS):
sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
Ubuntu添加源的方式类似,通过参考2
/etc/apt/sources.list.d/mongodb-org-6.0.list文件定义,并指定deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse。
华为云服务器安装mongodb的完整流程
源配置完成后,系统会自动从官方仓库拉取安装包,整个过程无需手动下载tar包。
安装MongoDB服务端与客户端
CentOS下执行:
sudo yum install -y mongodb-org
Ubuntu下执行:
sudo apt-get update
sudo apt-get install -y mongodb-org
安装完成后,MongoDB会自动启动,但需要确认状态,使用sudo systemctl status mongod查看服务是否运行,若未启动,执行sudo systemctl start mongod并设置开机自启:
sudo systemctl enable mongod
验证安装是否成功
通过mongosh(MongoDB Shell)连接本地数据库:
mongosh --eval "db.runCommand({ connectionStatus: 1 })"
如果返回正常,说明安装成功,此时默认绑定127.0.0.1,仅本地可访问,若需远程连接,需修改配置文件。
MongoDB安装配置中的关键参数调整
修改bindIp与端口
MongoDB的配置文件位于/etc/mongod.conf(CentOS/Ubuntu路径相同),打开该文件,找到net:部分,修改bindIp为0.0.0或具体内网IP,
net:
port: 27017
bindIp: 0.0.0.0
注意:直接绑定0.0.0.0存在安全风险,建议结合华为云安全组白名单使用,保存后重启服务:
sudo systemctl restart mongod
启用访问控制(认证)
为了安全,安装后应立即创建管理员用户并开启认证,使用mongosh连接本地MongoDB:
mongosh
切换到admin数据库,创建超级管理员:参考2
use admin
db.createUser({
user: "admin",
pwd: "yourStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
退出后,在/etc/mongod.conf中启用认证:
security:
authorization: enabled
重启服务,后续连接必须提供用户名密码。
mongosh -u admin -p --authenticationDatabase admin
日志与存储优化
华为云ECS通常挂载云硬盘,MongoDB的数据存储路径默认在/var/lib/mongo,日志在/var/log/mongodb/mongod.log,如果数据量较大,建议将数据目录挂载到独立数据盘,修改storage.dbPath配置项,同时开启日志轮转,避免单文件过大:
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
logRotate: reopen
配合Linux的logrotate工具定期切割日志。
安全与运维要点
防火墙规则补充
除了华为云安全组,ECS内部如果启用了firewalld或iptables,也需要放行27017端口:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
Ubuntu使用ufw:
sudo ufw allow 27017/tcp
双重防护更可靠。
定期备份策略
行业共识认为,MongoDB数据备份应结合业务窗口进行,可以使用mongodump工具进行全量备份,或使用华为云云硬盘快照实现秒级备份。
mongodump --username admin --password --authenticationDatabase admin --out /backup/$(date +%Y%m%d)
恢复时使用mongorestore,建议将备份文件存储到华为云OBS对象存储,实现异地容灾。
监控与性能调优
利用华为云监控服务查看CPU、内存、磁盘IOPS,当发现MongoDB读写延迟升高时,可考虑调整WiredTiger缓存大小(
wiredTigerCacheSizeGB)或添加索引,配置文件位于/etc/mongod.conf的storage.wiredTiger.engineConfig.cacheSizeGB,默认值为内存的一半,可根据业务负载手动设定。
关于华为云安装mongodb的常见问题解答
Q:安装后MongoDB无法启动,提示“Failed to start mongod.service”怎么办?
A:先检查配置文件语法是否错误,用sudo mongod --config /etc/mongod.conf --fork直接运行看错误输出,常见原因是/var/lib/mongo目录权限不正确,确保该目录属主为mongod:mongod,华为云ECS的SELinux默认可能阻止MongoDB访问数据目录,可临时关闭SELinux(setenforce 0)测试,若正常则添加SELinux策略或永久关闭(不推荐)。
Q:华为云centos安装mongodb时yum源报错“404 Not Found”怎么解决?
A:这通常是因为baseurl中的$releasever变量未正确解析,CentOS 8已停止维护,建议升级到Rocky Linux或改用Ubuntu,如果坚持使用CentOS 7,可在repo文件中将$releasever手动替换为7,并确保使用MongoDB 4.4版本,因为MongoDB 6.0已不再支持CentOS 7,另一种方案是直接下载rpm包进行本地安装,但依赖关系较复杂,不推荐。
Q:MongoDB安装配置中如何实现远程连接?已经修改了bindIp但客户端仍报错“Connection refused”。
A:首先确认安全组已放行27017端口,且ECS公网IP可访问,在ECS上使用netstat -tlnp | grep 27017查看MongoDB是否监听在所有接口(0.0.0.0:27017),如果只监听127.0.0.1,说明配置文件未生效,需重启服务并检查/etc/mongod.conf的bindIp是否有空格或缩进错误,连接时需指定正确的认证数据库,例如mongosh --host 公网IP --port 27017 -u admin -p --authenticationDatabase admin。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/533976.html



