MySQL 常见连接问题 - xiaoboluo768/mysql-system-schema GitHub Wiki
- 客户端无法连接服务器的问题
- 服务端未启动,可以通过检查服务端进程是否存在来排除(ps aux |grep mysqld,如果未启动则尝试拉起,如果启动失败则检查错误日志排查原因),通常报错信息类似如下:
* TCP/IP方式连接:ERROR 2003: Can't connect to MySQL server on 'host_name' (111)
* socket方式连接:ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
- 客户端连错端口,可以通过检查服务器进程运行的端口(netstat -ln | grep mysqld),找到正确的端口并在客户端指定连接该端口可以解决
- 服务器启用了--skip-networking选项或者--bind-address = 127.0.0.1选项时,它将仅在本地环回接口上侦听TCP/IP连接,并且不会接受远程连接。去除这些选项并重启进程可以解决
- 服务端防火墙未打开MySQL Server的端口访问权限,关闭防火墙或者允许MySQL Server的服务端口对外提供服务可以解决
- 没有使用正确的帐号或者密码连接服务器,通常报错信息类似:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 如果你的数据库是第一次初始化,且使用了命令mysqld --initialize-secure来初始化,则会为root用户生成一个随机密码字符串,在MySQL Server启动之后需要在error log中搜索password关键字,以找到随机密码字符串进行登录(使用该命令初始化会产生一个随机密码,如果你不需要该随机密码,则可以使用mysqld --initialize-insecure命令来初始化数据库),否则也会报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 如果你升级了服务端到最新版本,而客户端没有做相应的升级,则可能报认证协议不支持的错误(最好的办法是升级客户端版本,不建议去修改密码认证插件):Client does not support authentication protocol requested by server; consider upgrading MySQL client
- 服务端达到了最大用户连接数参数限制,此时使用具有super权限的管理员帐号登录数据库,修改最大连接数
- 服务端达到了最大错误连接数参数限制,可能反复尝试连接的某些客户端被拒绝连接(例如使用错误的帐号或密码反复尝试多次,达到了最大错误连接数),此时,使用管理员帐号从其他主机登录数据库执行flush hosts;语句刷新主机缓存信息,或者修改最大错误连接数参数