数据库连接问题排查指南
数据库连接失败是常见问题,按以下步骤排查解决。
错误类型一:连接被拒绝
可能原因:
- 数据库服务未启动
- 端口被防火墙阻止
- 用户没有远程连接权限
解决方法:
- 检查服务状态:systemctl status mysql
- 开放端口:firewall-cmd --add-port=3306/tcp
- 授权远程连接:GRANT ALL ON *.* TO 'user'@'%';
错误类型二:认证失败
可能原因:
- 用户名或密码错误
- 用户不存在
- 密码包含特殊字符需转义
解决方法:
- 重置密码:ALTER USER 'user'@'localhost' IDENTIFIED BY 'newpassword';
- 确认用户存在:SELECT user,host FROM mysql.user;
错误类型三:数据库不存在
可能原因:
- 数据库名称拼写错误
- 数据库未创建
- 用户没有该数据库权限
解决方法:
- 列出数据库:SHOW DATABASES;
- 创建数据库:CREATE DATABASE dbname;
- 授权访问:GRANT ALL ON dbname.* TO 'user'@'localhost';
错误类型四:连接超时
可能原因:
- 网络问题
- 数据库服务器负载高
- 连接数已满
解决方法:
- 检查网络:ping 数据库地址
- 查看连接数:SHOW PROCESSLIST;
- 增加最大连接:SET GLOBAL max_connections = 500;
中文乱码问题:
设置字符集:SET NAMES utf8mb4;
数据库创建时指定:CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci