2013 - Lost connection to MySQL 问题解决

昨天在捣鼓 coolq_npc 项目的时候,发现在容器内 Ubuntu 上安装的 mysql-server 怎么也登不上去,总是出现 2013 错误。

在通过 Google 查询问题原因时,很多人说的重启,或者调整打开文件数限制,以及各种解决手法都试过了,2013 雷打不动!

最后没办法了,只能去研究配置文件,在 /etc/mysql/mysql.conf.d/mysqld.cnf 配置中发现了这段信息:

1
2
3
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

意思为配置了 127.0.0.1(默认) 之后,就只能通过本地登录,即使在用户授权里面使用了 % 也不行。而我是通过 docker 里面的端口映射,从宿主机进行登录的,故无法进行登录。

通过将 bind-address 修改为 0.0.0.0 并重启后,登录正常。