mysql docker连接错误。不能通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器。

534 阅读1分钟

我启动了docker mysql容器,并试图使用mysql命令在docker外部连接它,但得到了错误。

$ mysql -uroot -proot

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

这是因为如果没有指定协议主机参数,mysql clinet会使用unix socket协议作为默认协议值来连接mysql服务器,但mysql docker容器是在tcp socket上监听的。

解决方法

$ mysql -uroot -proot -h127.0.0.1

在mysql命令中指定IP地址作为主机参数值将使mysql使用TCP协议而不是默认的unix套接字连接。
(注意,使用localhost作为主机参数值仍将使用unix套接字协议

或者使用

$ mysql -uroot -proot --protocol tcp

这个命令将明确指定协议参数

mysql docker连接错误。不能通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器'首次出现在Redino博客上。