MongoDB Database Tools 安装

本文介绍了MongoDB Database Tools,这是一个用于操作MongoDB数据库的命令集合。内容包括其安装步骤,如Linux下的安装教程,以及基本的使用说明,提示读者详细参数解释可参考官方文档。

说明

MongoDB Database Tools 用于操作MongoDB数据库的命令集。

安装

参考

使用

# 全库导出 分文件
mongodump mongodb://root:123456@192.168.100.32:27017/?authSource=admin  -d test -o D:\data\20220603

# 全库导入 分文件
mongorestore mongodb://root:123456@192.168.100.32:27017/?authSource=admin  -d test_bak  D:\data\20220603\test

# 压缩文件 导出
mongodump mongodb://root:123456@192.168.100.32:27017/?authSource=admin  -d test --gzip --archive=D:\data\20220603\test.gz

# 压缩文件 导入
mongorestore mongodb://root:123456@192.168.100.32:27017/?authSource=admin --nsInclude=test.* --nsFrom=test.* --nsTo=test_bak.* --gzip --archive=D:\data\20220603\test.gz

注 : 详细参数解释请参考官方文档

参考
mongodump 使用手册

你运行了: ```bash dpkg -l | grep -i mongo ``` 输出如下: ``` pU mongodb-mongosh 2.5.9 amd64 MongoDB Shell CLI REPL Package pU mongodb-org-database-tools-extra 8.0.15 amd64 Extra MongoDB database tools ``` 我们来详细解释这些状态的含义,并告诉你 **如何正确处理它们**。 --- ## 🔍 状态码 `pU` 是什么意思? | 字段 | 含义 | |------|------| | 第一个字母 (`p`) | 包的状态(当前) | | 第二个字母 (`U`) | 包的期望状态 | ### ✅ 完整解读:`pU` - `p` = **purged**(已删除文件和配置) - `U` = **Unpacked / not configured**(解包但未配置) > ⚠️ 这是一个**矛盾状态**:文件已被删光,但系统仍认为该包“已解压、待配置”。 这通常发生在: - 安装中断(如中途断电、强制 kill) - 使用 `dpkg --force-*` 强制操作后残留元数据 - APT 安装失败后手动清理不彻底 📌 虽然这两个包实际上已经“不存在”于系统中(无文件),但 **APT/dpkg 认为它们处于异常状态**,可能会影响后续依赖安装。 --- ## ✅ 如何解决 `pU` 状态问题? ### 方案一:尝试重新配置(如果文件还在缓存中) ```bash sudo dpkg --configure mongodb-mongosh mongodb-org-database-tools-extra ``` 但如果提示找不到 `.deb` 文件或失败,则进入方案二。 --- ### ✅ 方案二:强制清除元信息(推荐) 既然包已经被 purge 且无法正常配置,我们可以直接从 dpkg 数据库中移除其记录。 > 💡 原理:修改 `/var/lib/dpkg/status` 文件,删除对应条目 #### 步骤 1:备份状态文件(安全第一!) ```bash sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup.$(date +%s) ``` #### 步骤 2:编辑状态文件 ```bash sudo nano /var/lib/dpkg/status ``` 在文件中搜索: - `mongodb-mongosh` - `mongodb-org-database-tools-extra` 找到类似以下区块: ``` Package: mongodb-mongosh Status: purge ok not-installed Priority: optional Section: database Installed-Size: 45678 Maintainer: MongoDB, Inc. <packaging@mongodb.com> Architecture: amd64 Version: 2.5.9 ... ``` ✅ 删除整个区块(从 `Package:` 开始到下一个 `Package:` 之前) 保存并退出(`Ctrl+O`, `Enter`, `Ctrl+X`) --- #### 步骤 3:更新 APT 缓存 ```bash sudo apt update ``` #### 步骤 4:验证是否消失 ```bash dpkg -l | grep -i mongo ``` ✅ 正确结果:**无输出** 或只显示正常安装的包(如 `ii`) --- ## ✅ 替代方法:使用工具自动修复(可选) 你可以使用 `dpkg-admin` 工具或脚本化方式批量清理: ```bash # 清理所有 pU 状态的 mongo 包 for pkg in $(dpkg -l | grep -i 'pU.*mongo' | awk '{print $2}'); do echo "Removing record for $pkg from dpkg database..." sudo sed -i '/^Package: '$pkg'$/,/^$/d' /var/lib/dpkg/status done ``` > ⚠️ 警告:此命令直接修改数据库,请先备份! --- ## ✅ 后续建议:避免再次出现 pU 状态 ### 1. 不要中断安装过程 ```bash # 推荐添加选项防止中断 sudo apt install -y package-name \ --o Dpkg::Options::="--force-confold" \ --o Dpkg::Options::="--force-overwrite" ``` ### 2. 如果安装失败,优先用 APT 修复 ```bash sudo apt --fix-broken install ``` 而不是直接用 `dpkg --remove` 或 `--purge` ### 3. 彻底卸载时使用: ```bash sudo apt purge mongodb-* sudo apt autoremove -y ``` --- ## ✅ 验证你现在可以正常安装 MongoDB 完成清理后,执行: ```bash sudo apt update sudo apt install -y mongodb-org --o Dpkg::Options::="--force-overwrite" ``` 你应该不会再看到因 `pU` 包导致的冲突或中断。 --- ## 🧰 补充知识:常见 dpkg 状态码速查表 | 当前状态 | 含义 | |--------|------| | `i` | installed | | `r` | removed (files gone, config kept) | | `p` | purged (everything deleted) | | `h` | half-installed | | `F` | half-configured (trigger failed) | | 期望状态 | 含义 | |--------|------| | `i` | install | | `R` | remove | | `P` | purge | | `U` | unpacked (not configured yet) | 所以 `pU` = “我期望被解包但未配置”,但实际上它已经被删了 → 矛盾 → 需人工干预 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值