[英]Docker Mysql Can't connect to local MySQL server through socket
I'm using below command to run the mysql docker container.我正在使用以下命令来运行 mysql docker 容器。
docker container run -it --name mysql-test -e MYSQL_ROOT_PASSWORD=secret mysql bash
Then I tried to connect to mysql inside docker container using below command.然后我尝试使用以下命令连接到 docker 容器内的 mysql。
mysql -uroot -psecret
It gives me below error.它给了我以下错误。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
If I do below then sometimes it works but not all time.如果我在下面这样做,那么有时它会起作用,但并非总是如此。
touch /var/run/mysqld/mysqld.sock
Then I tried to run the container in detach mode but it also gave me the same error.然后我尝试以分离模式运行容器,但它也给了我同样的错误。
docker container run -d -p 3306:3306 --name mysql-test -e MYSQL_ROOT_PASSWORD=secret mysql
docker exec -it mysql-test bash
mysql -uroot -p
What am I doing wrong here?我在这里做错了什么?
This Connect to mysql in a docker container from the host may help. 从主机连接到 docker 容器中的 mysql可能会有所帮助。
If you happen to get “Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)” errors in logging in to mysql-server while working on docker containers:如果您在使用 docker 容器时登录 mysql-server 时碰巧遇到“Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)”错误:
check the path of socket file in /etc/mysql/my.cnf查看/etc/mysql/my.cnf中socket文件的路径
check if mysqld.sock and mysqld.pid file is present in /var/run/mysqld/ directory or not.检查 /var/run/mysqld/ 目录中是否存在 mysqld.sock 和 mysqld.pid 文件。
If not, create these files as:如果没有,请将这些文件创建为:
touch /var/run/mysqld/mysqld.sock
touch /var/run/mysqld/mysqld.pid
chown -R mysql:mysql /var/run/mysqld/mysqld.sock
chown -R mysql:mysql /var/run/mysqld/mysqld.sock
chmod -R 644 /var/run/mysqld/mysqld.sock
Now restart the mysql-server as:现在重新启动 mysql-server 为:
service mysql-server restart
Now, trying logging again in to mysql-server.现在,尝试再次登录到 mysql-server。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.