常见问题
连接被拒绝(Connection refused)
- 确认数据库服务已启动:
systemctl status mysql 或 systemctl status postgresql - 确认
bind-address 已改为 0.0.0.0(远程连接时) - 确认防火墙已放行对应端口(MySQL 3306,PostgreSQL 5432)
- 检查容器网络是否互通(Docker 环境)
访问被拒绝(Access denied)
- 检查用户名和密码是否正确
- 检查用户主机限制:
SELECT user, host FROM mysql.user; - 执行
FLUSH PRIVILEGES; 刷新权限 - 确认用户对
redirect 数据库有访问权限
PostgreSQL 认证失败(authentication failed)
- 检查
pg_hba.conf 中是否添加了远程访问规则 - 确认认证方式为
md5(密码认证)而非 peer - 重启 PostgreSQL 服务使配置生效
- 检查
postgresql.conf 中的 listen_addresses 设置
数据库不存在
- 确认已执行
CREATE DATABASE redirect; - 检查
DB_NAME 环境变量是否设置为 redirect - SQLite 模式下确认
DB_NAME 路径正确且有写入权限
字符集问题
- MySQL/MariaDB 确保使用
utf8mb4 字符集 - PostgreSQL 默认使用
UTF8,无需额外配置 - 连接字符串中添加
charset=utf8mb4(MySQL)