diff --git a/README.md b/README.md index 3ff2548d7..b005bc189 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,8 @@ MaiMBot是一个开源项目,我们非常欢迎你的参与。你的贡献, - [🐳 Docker部署指南](docs/docker_deploy.md) +- [🖥️群晖 NAS 部署指南](docs/synology_deploy.md) + ### 配置说明 - [🎀 新手配置指南](docs/installation_cute.md) - 通俗易懂的配置教程,适合初次使用的猫娘 diff --git a/docs/fast_q_a.md b/docs/fast_q_a.md index 92800bad2..abec69b40 100644 --- a/docs/fast_q_a.md +++ b/docs/fast_q_a.md @@ -38,6 +38,9 @@ ### MongoDB相关问题 - 我应该怎么清空bot内存储的表情包 ❓ +>需要先安装`MongoDB Compass`,[下载链接](https://www.mongodb.com/try/download/compass),软件支持`macOS、Windows、Ubuntu、Redhat`系统 +>以Windows为例,保持如图所示选项,点击`Download`即可,如果是其他系统,请在`Platform`中自行选择: +> >打开你的MongoDB Compass软件,你会在左上角看到这样的一个界面: > @@ -68,7 +71,9 @@ - 为什么我连接不上MongoDB服务器 ❓ >这个问题比较复杂,但是你可以按照下面的步骤检查,看看具体是什么问题 -> + + +>#### Windows > 1. 检查有没有把 mongod.exe 所在的目录添加到 path。 具体可参照 > >  [CSDN-windows10设置环境变量Path详细步骤](https://blog.csdn.net/flame_007/article/details/106401215) @@ -112,4 +117,173 @@ >MONGODB_HOST=127.0.0.1 >MONGODB_PORT=27017 #修改这里 >DATABASE_NAME=MegBot ->``` \ No newline at end of file +>``` + +
+Linux(点击展开) + +#### **1. 检查 MongoDB 服务是否运行** +- **命令**: + ```bash + systemctl status mongod # 检查服务状态(Ubuntu/Debian/CentOS 7+) + service mongod status # 旧版系统(如 CentOS 6) + ``` +- **可能结果**: + - 如果显示 `active (running)`,服务已启动。 + - 如果未运行,启动服务: + ```bash + sudo systemctl start mongod # 启动服务 + sudo systemctl enable mongod # 设置开机自启 + ``` + +--- + +#### **2. 检查 MongoDB 端口监听** +MongoDB 默认使用 **27017** 端口。 +- **检查端口是否被监听**: + ```bash + sudo ss -tulnp | grep 27017 + 或 + sudo netstat -tulnp | grep 27017 + ``` +- **预期结果**: + ```bash + tcp LISTEN 0 128 0.0.0.0:27017 0.0.0.0:* users:(("mongod",pid=123,fd=11)) + ``` + - 如果无输出,说明 MongoDB 未监听端口。 + + +--- +#### **3. 检查防火墙设置** +- **Ubuntu/Debian(UFW 防火墙)**: + ```bash + sudo ufw status # 查看防火墙状态 + sudo ufw allow 27017/tcp # 开放 27017 端口 + sudo ufw reload # 重新加载规则 + ``` +- **CentOS/RHEL(firewalld)**: + ```bash + sudo firewall-cmd --list-ports # 查看已开放端口 + sudo firewall-cmd --add-port=27017/tcp --permanent # 永久开放端口 + sudo firewall-cmd --reload # 重新加载 + ``` +- **云服务器用户注意**:检查云平台安全组规则,确保放行 27017 端口。 + +--- + +#### **4. 检查端口占用** +如果 MongoDB 服务无法监听端口,可能是其他进程占用了 `27017` 端口。 +- **检查端口占用进程**: + ```bash + sudo lsof -i :27017 # 查看占用 27017 端口的进程 + 或 + sudo ss -ltnp 'sport = :27017' # 使用 ss 过滤端口 + ``` +- **结果示例**: + ```bash + COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME + java 1234 root 12u IPv4 123456 0t0 TCP *:27017 (LISTEN) + ``` + - 输出会显示占用端口的 **进程名** 和 **PID**(此处 `PID=1234`)。 + +- **解决方案**: + 1. **终止占用进程**(谨慎操作!确保进程非关键): + ```bash + sudo kill 1234 # 正常终止进程 + sudo kill -9 1234 # 强制终止(若正常终止无效) + ``` + 2. **修改端口**: + 编辑麦麦目录里的`.env.dev`文件,修改端口号: + ```ini + MONGODB_HOST=127.0.0.1 + MONGODB_PORT=27017 #修改这里 + DATABASE_NAME=MegBot + ``` + + +##### **注意事项** +- 终止进程前,务必确认该进程非系统关键服务(如未知进程占用,建议先排查来源),如果你不知道这个进程是否关键,请更改端口使用。 + +
+ +
+macOS(点击展开) + +### **1. 检查 MongoDB 服务状态** +**问题原因**:MongoDB 服务未启动 +**操作步骤**: +```bash +# 查看 MongoDB 是否正在运行(Homebrew 安装的默认服务名) +brew services list | grep mongodb + +# 如果状态为 "stopped" 或 "error",手动启动 +brew services start mongodb-community@8.0 +``` +✅ **预期结果**:输出显示 `started` 或 `running` +❌ **失败处理**: +- 若报错 `unrecognized service`,可能未正确安装 MongoDB,建议[重新安装](https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/#install-mongodb-community-edition)。 + +--- + +### **2. 检查端口是否被占用** +**问题原因**:其他程序占用了 MongoDB 的默认端口(`27017`),导致服务无法启动或连接 +**操作步骤**: +```bash +# 检查 27017 端口占用情况(需 sudo 权限查看完整信息) +sudo lsof -i :27017 + +# 或使用 netstat 快速检测 +netstat -an | grep 27017 +``` +✅ **预期结果**: +- 若无 MongoDB 运行,应无输出 +- 若 MongoDB 已启动,应显示 `mongod` 进程 + +❌ **发现端口被占用**: +#### **解决方案1:终止占用进程** +1. 从 `lsof` 输出中找到占用端口的 **PID**(进程号) +2. 强制终止该进程(谨慎操作!确保进程非关键): + ```bash + kill -9 PID # 替换 PID 为实际数字(例如 kill -9 12345) + ``` +3. 重新启动 MongoDB 服务: + ```bash + brew services start mongodb-community@8.0 + ``` + +#### **解决方案2:修改端口** + 编辑麦麦目录里的`.env.dev`文件,修改端口号: + ```ini + MONGODB_HOST=127.0.0.1 + MONGODB_PORT=27017 #修改这里 + DATABASE_NAME=MegBot + ``` + +--- + +### **3. 检查防火墙设置** +**问题原因**:macOS 防火墙阻止连接 +**操作步骤**: +1. 打开 **系统设置 > 隐私与安全性 > 防火墙** +2. 临时关闭防火墙测试连接 +3. 若需长期开放,添加 MongoDB 到防火墙允许列表(通过终端或 GUI)。 + + +--- +### **4. 重置 MongoDB 环境** +***仅在以上步骤都无效时使用*** +**适用场景**:配置混乱导致无法修复 +```bash +# 停止服务并删除数据 +brew services stop mongodb-community@8.0 +rm -rf /usr/local/var/mongodb + +# 重新初始化(确保目录权限) +sudo mkdir -p /usr/local/var/mongodb +sudo chown -R $(whoami) /usr/local/var/mongodb + +# 重新启动 +brew services start mongodb-community@8.0 +``` + +
\ No newline at end of file diff --git a/docs/linux_deploy_guide_for_beginners.md b/docs/linux_deploy_guide_for_beginners.md index 1f1b0899f..f254cf665 100644 --- a/docs/linux_deploy_guide_for_beginners.md +++ b/docs/linux_deploy_guide_for_beginners.md @@ -2,7 +2,7 @@ ## 事前准备 -为了能使麦麦不间断的运行,你需要一台一直开着的主机。 +为了能使麦麦不间断的运行,你需要一台一直开着的服务器。 ### 如果你想购买服务器 华为云、阿里云、腾讯云等等都是在国内可以选择的选择。 @@ -12,6 +12,8 @@ ### 如果你不想购买服务器 你可以准备一台可以一直开着的电脑/主机,只需要保证能够正常访问互联网即可 +**下文将统称它们为`服务器`** + 我们假设你已经有了一台Linux架构的服务器。举例使用的是Ubuntu24.04,其他的原理相似。 ## 0.我们就从零开始吧 @@ -120,6 +122,7 @@ sudo apt install python-is-python3 ``` ## 3.MongoDB的安装 +*如果你是参考[官方文档](https://www.mongodb.com/zh-cn/docs/manual/administration/install-on-linux/#std-label-install-mdb-community-edition-linux)进行安装的,可跳过此步* ``` bash cd /moi/mai @@ -156,6 +159,7 @@ sudo systemctl enable mongod curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh && sudo bash napcat.sh ``` 执行后,脚本会自动帮你部署好QQ及Napcat +*注:如果你已经手动安装了Napcat和QQ,可忽略此步* 成功的标志是输入``` napcat ```出来炫酷的彩虹色界面 @@ -225,7 +229,8 @@ bot └─ bot_config.toml ``` -你要会vim直接在终端里修改也行,不过也可以把它们下到本地改好再传上去: +你可以使用vim、nano等编辑器直接在终端里修改这些配置文件,但如果你不熟悉它们的操作,也可以使用带图形界面的编辑器。 +如果你的麦麦部署在远程服务器,也可以把它们下载到本地改好再传上去 ### step 5 文件配置 @@ -244,7 +249,7 @@ bot - [⚙️ 标准配置指南](./installation_standard.md) - 简明专业的配置说明,适合有经验的用户 -**step # 6** 运行 +### step 6 运行 现在再运行 diff --git a/docs/manual_deploy_linux.md b/docs/manual_deploy_linux.md index 653284bf5..5a8806771 100644 --- a/docs/manual_deploy_linux.md +++ b/docs/manual_deploy_linux.md @@ -24,9 +24,6 @@ --- -## 一键部署 -请下载并运行项目根目录中的run.sh并按照提示安装,部署完成后请参照后续配置指南进行配置 - ## 环境配置 ### 1️⃣ **确认Python版本** diff --git a/docs/pic/compass_downloadguide.png b/docs/pic/compass_downloadguide.png new file mode 100644 index 000000000..06a08b52d Binary files /dev/null and b/docs/pic/compass_downloadguide.png differ