Ubuntu16.04安装非官方MongoDB后mongodump无法识别--uri参数如何解决
问题根因
你当前使用的是Ubuntu官方源提供的非官方维护MongoDB 2.6.10版本,版本过旧存在两个兼容性问题:
--uri参数为MongoDB 3.4.6版本才新增的功能,2.6版本完全不支持该参数mongodb+srv协议连接方式需要MongoDB 3.6及以上版本支持
解决方案
方案一:完全替换为官方维护的MongoDB版本(推荐)
适合当前VPS上的MongoDB没有重要本地数据,可以重装的场景
- 卸载现有旧版本MongoDB及相关依赖
sudo apt-get purge -y mongodb* sudo apt-get autoremove -y # 如不需要原有本地MongoDB数据可执行以下清理命令 sudo rm -rf /var/log/mongodb /var/lib/mongodb
- 导入MongoDB官方GPG密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB962C9312C5F8E52522D4
- 添加MongoDB 4.0官方源(适配Ubuntu 16.04)
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
- 安装官方MongoDB包
sudo apt-get update sudo apt-get install -y mongodb-org
安装完成后即可正常使用原mongodump --uri命令执行备份。
方案二:仅安装独立的MongoDB数据库工具
适合需要保留当前旧版本MongoDB服务,不想修改现有数据库环境的场景
MongoDB官方提供了独立的数据库工具包,包含最新版的mongodump、mongorestore等工具,无需替换原有MongoDB服务:
- 下载适配Ubuntu16.04的工具包
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu1604-x86_64-100.9.4.tgz
- 解压并安装工具到系统路径
tar -zxvf mongodb-database-tools-ubuntu1604-x86_64-100.9.4.tgz sudo cp mongodb-database-tools-ubuntu1604-x86_64-100.9.4/bin/* /usr/local/bin/
- 验证安装结果
mongodump --version
返回版本号高于100.x即安装成功,可正常使用--uri参数。
临时应急方案(无需安装新软件)
如果仅需要临时执行一次备份,可将URI参数拆分为旧版mongodump支持的参数格式,需要提前解析mongodb+srv地址对应的实际集群节点地址,替换命令中的节点地址即可:
mongodump --host <替换为实际集群节点地址列表> --ssl --username ACC_NAME --password PASSWORD --db DATABASE_NAME
内容的提问来源于stack exchange,提问作者AG_HIHI
相关产品推荐
相关产品推荐

