SQLyog连接虚拟机中docker中的mysql,解决2003错误

docker中安装启动mysql:

  1. 获取镜像docker pull mysql:5.7
  2. 启动并创建mysql容器
    docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 【解释】-d 后台运行, -p端口映射(主机端口:容器中mysql端口), -v卷挂载,保持容器与本机文件同步(虚拟机中文件夹:docker中mysql文件夹), -e环境配置,设置密码为123456, --name 容器名。

SQLyog连接docker中mysql:

直接用localhost连接必然报错(2003错误代码),因为这里用的是虚拟机中的主机,而不是我们的windows,查看网上资料有的让改阿里云的安全组规则,添加Mysql 3306端口的,可惜不行,小白一个不懂。改完依旧报错,还看到一篇文章说把连接的ip改为docker里mysql的ip,其实我一开始就是看了这篇文章,然后就一直用docker里mysql的ip来连接,一直报2003错误。然后发现被误导了。 正确的步骤是:
  1. 首先要按照前边步骤创建并启动docker中mysql容器(第一次创建用run,下次就直接docker start mysql01即可,因为容器已经存在了,run的作用是创建及启动)

  2. 关闭虚拟机中防火墙,systemctl stop firewalld

  3. 查看linux主机IPifconfig -a
    在这里插入图片描述

  4. 将inet后面的IP复制
    在这里插入图片描述

  5. 连接成功