doc:部分文档修改
This commit is contained in:
178
docs/fast_q_a.md
178
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`中自行选择:
|
||||
><img src="./pic/compass_downloadguide.png" width=400>
|
||||
|
||||
>打开你的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
|
||||
>```
|
||||
>```
|
||||
|
||||
<details>
|
||||
<summary>Linux(点击展开)</summary>
|
||||
|
||||
#### **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
|
||||
```
|
||||
|
||||
|
||||
##### **注意事项**
|
||||
- 终止进程前,务必确认该进程非系统关键服务(如未知进程占用,建议先排查来源),如果你不知道这个进程是否关键,请更改端口使用。
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>macOS(点击展开)</summary>
|
||||
|
||||
### **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
|
||||
```
|
||||
|
||||
</details>
|
||||
Reference in New Issue
Block a user