连接到docker中运行的mysql

wgxvkvu9  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(325)

在建立了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 我以为我连接了本地主机端口3306和docker容器的3306端口。为什么我不能通过localhost端口连接到mysql?

ht4b089n

ht4b089n1#

您可以使用tcp套接字或unix套接字连接到mysql。当您处于远程时,您总是使用tcp套接字。当您是本地mysql客户机时,更喜欢socket。
在您的情况下,您需要知道mysql在unix套接字中的位置。您可以使用:

netstat -npl

当mysql在docker容器中运行时,您必须在容器中才能在localhost上连接。
如果您是本地人:
mysql-u root-p-h 127.0.0.1将强制使用tcp套接字
mysql-u root-p-h localhost将使用unix套接字

相关问题