常见问题

连接被拒绝(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)