我已经通过发出命令docker run -d -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=supersecret some-mysql
在docker中启动了Mysql实例。但是,当我尝试通过发出命令mysql -u root -p
并提供密码superscret作为root用户登录时。我出现以下错误。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
答案 0 :(得分:0)
我不知道您使用的是哪个版本的mysql,但这是一个有效的示例:
docker run -d -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=supersecret mysql:latest
docker exec -ti some-mysql mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
答案 1 :(得分:0)
我假设您是从主机本身而不是容器内部执行close(file)
。
因此,根据我的假设,容器在运行时在主机本身内部没有mysql.sock,因此您需要更改默认协议。
此命令将通过mysql -u root -p
而不是套接字进行连接
tcp