我正在我的Mac笔记本电脑上运行Docker mysql容器。 以前,我可以通过mysql客户端从主机OS连接到它。 然而,不知何故,它被删除了,现在在我重新创建它之后,我再也无法连接到它。 我搜索了几十个类似的问题,但完全被难倒了。
下面是我如何创建它的:
docker container run --name mysql-zhxw-dev -p 3306:3306 --expose=3306 -v zhxw-local-db-:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.7.30
每次我从主机操作系统运行mysql-u root-h127.0.0.1
时,我都会得到以下内容:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
我可以登录到容器,并从内部连接到mysql:
docker container exec -it mysql-zhxw-dev bash
mysql -u root <-- connects fine
我试过:
Docker container Exec
登录到容器,安装vi
,编辑/etc/mysql/mysql.conf.d/mysql.cnf并取消注释包含bind-address
的行。 我尝试使用bind-address=0.0.0.0
和bind-address=127.0.0.1
,然后显然退出并运行Docker容器重新启动mysql-zhxw-dev
。连接到的端口-P 3306
-h localhost
,-h 127.0.0.1
,-h 0.0.0.0
,并省略-h
--protocol=tcp
我不知道还能尝试些什么。
我在docker-compose中有一个模板,用mysql编写,也许它能帮到你。
Docker-compose.yml
version: "3.2"
services:
mysql:
image: mysql:latest
ports:
- "3306:3306"
volumes:
- /path-persistent-volumen:/var/lib/mysql/
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=password