繁体   English   中英

Docker无法通过socket连接到本地MySQL服务器

[英]Docker can't connect to local MySQL server through socket

我是 docker 的新手,我遇到了一个奇怪的错误。

当我跑

docker run --name some-mysql-5 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret mysql:latest

其次是

docker exec -ti containerid bash 
mysql -uroot -psecret

mysql 工作正常,我可以创建和填充数据库。

但是当我尝试创建一个持久主机卷以创建一个这样的共享数据库时:

docker run --name some-mysql-4 -v C:\Users\User\Desktop\shared_vol_test:/var/lib/mysql/data -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret mysql:latest

其次是

docker exec -ti containerid bash 
mysql -uroot -psecret

我收到以下错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我也尝试以管理员身份运行它,但结果是一样的。

我究竟做错了什么?

我是否以正确的方式创建共享和持久卷?

/var/run/mysqld不是容器之间的共享文件系统。 使用 tcp 端口 3306 连接容器或共享/var/run/mysqld

我通过在此文件夹var/lib/mysql而不是var/lib/mysql/data中创建卷找到了一种解决方法

我已经按照本指南的第一步进行了操作,现在已经成功了。

我现在说是因为当我第一次尝试执行mysql -uuser -ppass时没有通过拒绝我访问来解决问题,过了一段时间它使用相同的凭据和相同的命令,所以我可以创建一个数据库。 db 现在出现在我的主机目标目录中,所以也许我找到了解决问题的方法。 这里提到了一些关于 mysql 时间准备好的事情,我猜还有很多我必须理解的行为。

我的帐户名说明了一切:(:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM