1、先拉取MySql5.6镜像(也可以拉取默认版本,若Mysql镜像默认版本latest为8.0以上,Navict连接会报错,最下方有解决方法),成功拉取之后,使用docker images命令查看。

|
属性 |
说明 |
|
REPOSITORY |
表示镜像的仓库源 |
|
TAG |
镜像的标签,即版本latest为默认最新的版本 |
|
IMAGE ID |
镜像ID |
|
CREATED |
镜像创建时间 |
|
SIZE |
镜像大小 |
2、运行mysql容器
启动一般命令如下:
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
正常使用docker启动mysql容器,当关闭容器时,容器中的数据会消失,所以要将mysql容器中的数据持久化到主机上,持久化数据启动mysql容器命令如下:
docker run -p 3306:3306 --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d
-v /usr/local/mysql/logs:/logs
-v /usr/local/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
|
命令 |
说明 |
|
-p 3306:3306 |
将主机的3306端口映射到Docker容器的3306端口 |
|
–name mysql |
指定运行的服务的名字为mysql |
|
-v /usr/local/mysql/data:/var/lib/mysql |
将主机/usr/local/mysql/data目录挂载到容器指定目录 |
|
-e MYSQL_ROOT_PASSWORD=123456 |
初始化root用户密码为123456 |
|
-d |
后台运行开启的服务 |
|
mysql:5.6 |
指定运行的服务和版本 |
3、查看运行中的容器docker ps,获取容器ID
|
属性 |
说明 |
|
CONTAINER ID |
容器ID |
|
IMAGE |
镜像名 |
|
PORT |
端口 |
|
NAMES |
容器名 |
4、进入运行成功的容器(根据容器ID)
(1)win10下:
docker exec -it mysql bash
![]()
![]()
(2)Linux下:
docker exec -it mysql /bin/bash
5、连接mysql:
mysql -u root -p
6、Navicat连接Docker的mysql容器:
报错:ERROR 1130 (HY000): Host '172.25.124.254' is not allowed to connect to this MySQL server

这个返回结果说明现在 root 用户只允许在服务器的本地登录。
执行如下命令:
update user set host='%' where user='root';
然后重启 MySQL 服务就可以了。
docker restart mysql
Navicat就可以正常连接了
本文介绍了如何使用Docker拉取并运行MySQL5.6镜像,通过设置端口映射、数据持久化以及环境变量来启动MySQL容器。同时,针对Navicat连接MySQL容器时遇到的错误,提供了修改用户主机限制的解决方案,确保Navicat能正常连接。
1920






