# 常见问题FAQ 本章节整理了项目开发和部署过程中常见的问题及解决方案,帮助你快速定位和解决问题。 :::tip 温馨提示 遇到问题时,建议先查看终端日志输出和浏览器控制台(F12)的错误信息,通常能快速定位问题原因。 ::: ## 1. 端口被占用 **现象** 启动后端服务时报错: ``` OSError: [Errno 98] Address already in use ``` 或: ``` ERROR: [Errno 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 ``` **原因** 端口 `8000`(或配置的其他端口)已被其他程序占用。 **解决方案** ```bash # Windows 查看端口占用 netstat -ano | findstr 8000 # 找到 PID 后终止进程 taskkill /PID <进程ID> /F # Linux / macOS 查看端口占用 lsof -i :8000 # 终止进程 kill -9 <进程ID> ``` 或者使用其他端口启动: ```bash python manage.py runserver 8080 ``` :::tip 温馨提示 前端开发服务器端口冲突同理,修改 `ui/.env.development` 中的 `VITE_PORT` 即可。 ::: ## 2. 数据库连接失败 **现象** 启动时报错: ``` pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1'") ``` 或: ``` django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost'") ``` **排查步骤** ``` 1. 检查 MySQL 服务是否已启动 2. 检查 .env 中的 DATABASE_HOST、DATABASE_PORT、DATABASE_USER、DATABASE_PASSWORD 是否正确 3. 检查数据库用户是否有远程连接权限 4. 检查防火墙是否放行了数据库端口 ``` **解决方案** ```bash # 测试数据库连接 mysql -h127.0.0.1 -P3306 -uroot -p # 如果是权限问题,授权用户 mysql -uroot -p GRANT ALL PRIVILEGES ON `djangoadmin.django.antdvue`.* TO 'root'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` :::tip 温馨提示 确认 `.env` 中的 `DATABASE_PASSWORD` 没有多余的空格或引号。密码中的特殊字符可能需要转义。 ::: ## 3. Redis 连接失败 **现象** 启动时报错: ``` redis.exceptions.ConnectionError: Error connecting to 127.0.0.1:6379 ``` 或: ``` redis.exceptions.AuthenticationError: Authentication required ``` **排查步骤** ``` 1. 检查 Redis 服务是否已启动 2. 检查 .env 中的 REDIS_HOST、REDIS_PORT、REDIS_PASSWORD 是否正确 3. 检查 Redis 是否设置了密码 ``` **解决方案** ```bash # 测试 Redis 连接 redis-cli -h 127.0.0.1 -p 6379 -a your_password ping # Windows 启动 Redis 服务 net start Redis # Linux 启动 Redis 服务 sudo systemctl start redis # macOS 启动 Redis 服务 brew services start redis ``` :::tip 温馨提示 Redis 用于存储验证码和 JWT 令牌黑名单,是项目正常运行的必需服务。确保 `.env` 中的 `REDIS_PASSWORD` 与 Redis 实际配置的密码一致。 ::: ## 4. pip install 安装失败 **现象** 执行 `pip install -r requirements.txt` 时报错: ``` ERROR: Could not find a version that satisfies the requirement xxx ``` 或: ``` ERROR: Failed building wheel for xxx ``` **解决方案** ```bash # 方案一:使用国内镜像源 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 方案二:升级 pip 后重试 python -m pip install --upgrade pip pip install -r requirements.txt # 方案三:配置全局镜像源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip config set global.trusted-host mirrors.aliyun.com ``` :::danger requirements.txt 编码问题 `requirements.txt` 文件为 `UTF-16LE` 编码,部分系统可能无法正确解析。如果 `pip install` 报编码错误,请先将文件转换为 `UTF-8`: ```bash # Windows (PowerShell) Get-Content requirements.txt -Encoding Unicode | Set-Content -Encoding UTF8 requirements_utf8.txt pip install -r requirements_utf8.txt # Linux / macOS iconv -f UTF-16LE -t UTF-8 requirements.txt > requirements_utf8.txt pip install -r requirements_utf8.txt ``` ::: ## 5. mysqlclient 安装失败 **现象** Windows 系统安装 `mysqlclient` 时报错: ``` error: Microsoft Visual C++ 14.0 or greater is required ``` **解决方案** ```bash # 方案一:安装 Visual C++ Build Tools # 下载地址:https://visualstudio.microsoft.com/visual-cpp-build-tools/ # 方案二:使用预编译的 wheel 包 # 访问 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient # 下载对应版本的 .whl 文件后安装 # 方案三:使用 pymysql 作为替代(不推荐用于生产) pip install pymysql ``` ## 6. pnpm install 安装失败 **现象** 执行 `pnpm install` 时报错: ``` ERR_PNPM_NO_MATCHING_VERSION ``` 或: ``` GET https://registry.npmjs.org/xxx error ``` **解决方案** ```bash # 方案一:切换淘宝镜像源 pnpm config set registry https://registry.npmmirror.com pnpm install # 方案二:清除缓存后重试 pnpm store prune rm -rf node_modules pnpm install # 方案三:使用 --shamefully-hoist 模式 pnpm install --shamefully-hoist ``` :::tip 温馨提示 如果网络环境受限,可以尝试使用 VPN 或配置代理: ```bash pnpm config set proxy http://127.0.0.1:7890 pnpm config set https-proxy http://127.0.0.1:7890 ``` ::: ## 7. API 请求返回 404 **现象** 调用接口时返回: ```html