我正在使用以下命令运行mysql docker容器。
docker container run -it --name mysql-test -e MYSQL_ROOT_PASSWORD=secret mysql bash
然后我尝试使用以下命令连接到docker容器内的mysql。
mysql -uroot -psecret
它给了我下面的错误。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
如果我在下面进行操作,有时会奏效,但并非总是如此。
touch /var/run/mysqld/mysqld.sock
然后我尝试以分离模式运行容器,但它也给了我同样的错误。
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
我在这里做什么错了?
答案 0 :(得分:0)
此Connect to mysql in a docker container from the host可能会有帮助。
答案 1 :(得分:0)
如果您在使用 docker 容器时在登录 mysql-server 时碰巧遇到“Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)”错误:< /p>
查看/etc/mysql/my.cnf中socket文件的路径
检查/var/run/mysqld/目录下是否存在mysqld.sock和mysqld.pid文件。
如果没有,将这些文件创建为:
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
现在重新启动mysql-server:
service mysql-server restart
现在,尝试再次登录到 mysql-server。