docker安装mysql,本地连不上?

mac图形化的docker界面,运行mysql镜像
图片.png

端口号用默认的,运行起来后,提示已经在等待连接,端口号是3306

 /usr/sbin/mysqld: ready for connections. Version: '8.0.33'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

但是本地连接连不上

> mysql -u root -p                                   
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

是因为我电脑上安装着mysql,并且把3306端口号占了吗?如果本地卸载掉,mysql的命令是不是不能在本地执行了,又怎么验证连接docker的mysql呢?

阅读 2.1k
2 个回答

这个映射到你本地的端口是 33060,你要连接 33060 这个端口。

mysql -P 33060 -u root -p

并且,你应该还需要把容器里面 MySQL 用户设置为允许远程连接,也可以简单的把 Host 设置为 %

1、检查你的映射主机端口是不是3306,如果是且被本地Mysql占用,考虑换一个映射端口
2、你可以通过docker命令来验证连接docker的mysql
先用

docker ps -a

找到你正在运行的mysql容器对应的容器id
然后执行

docker exec -it mysql容器id /bin/bash

进入该容器
最后使用

mysql -u 用户名 -p

连接到该容器mysql正常使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题