建立docker网络后,我在docker容器中运行了mysql。
docker network create --subnet=172.19.0.0/16 network-name
docker run -p 3306:3306 --net network-name --ip 172.19.0.13 -e MYSQL_ROOT_PASSWORD=password -d
然后当我尝试使用命令在本地连接到mysql时
mysql -uroot -p
,我遇到了错误(Error 2002 (HY000): Can't Connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
)
然后我成功执行了命令mysql -u root -p -h 172.19.0.13
我以为我将localhost端口3306与docker容器的3306端口连接了。 为什么我不能通过本地主机端口连接到mysql?
答案 0 :(得分:0)
您可以使用tcp套接字或unix套接字连接到mysql。 当您处于远程状态时,请始终使用tcp socket。 当您是本地mysql客户端时,首选套接字。
在您的情况下,您需要知道mysql是unix套接字。 您可以使用:
netstat -npl
当mysql在docker容器中运行时,您必须位于该容器内部才能连接到localhost。
如果您是本地人: