1.搜索镜像

docker search mysql

2.拉取镜像

docker pull mysql
# 如果不加版本号,默认拉取最新版本的mysql

docker pull mysql:5.7
# 此指令为拉取mysql5.7

 

3.启动安装mysql

sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

-p 3306:3306:将容器的3306端口映射到主机的3306端口;
​
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码;
​
--name 给容器命名,mysql;
​
-d 表示容器在后台运行
​
注意事项:-d 后面是mysql镜像,一定要指定镜像版本号,也就是拉取的镜像版本
​

4.如果还是不能连接,是局域网的问题,可以直接进入实例操作

grant all privileges on *.* to root@"%" identified by "123456" with grant option;

5.进入容器

docker exec -it mysql bash
# 进入容器

6.登录mysql

mysql -uroot -p

 

7.连接宿主机(此步骤是为了在win10使用navicat连接docker的mysql)

输入ifconfig,查看ip

ens33对应的就是本机ip:

接下来使用navicat连接就可以,端口:3306,用户名:root 密码:123456

到此就完成了。

来点注意:我一开始安装的是最新版的mysql8.0,一直配置不对,然后我就改成了mysql5.7

 

####docker 中安装的最新的 mysql 版本是 8.0 版本 

navicat无法远程连接的问题

MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。因此我们需要修改 MySQL 用户登录的加密规则修改为mysql_native_password

1.修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;


2.修改密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';


3.开启远程访问权限

 

GRANT ALL ON *.* TO 'root'@'%';


4.刷新权限

flush privileges;


5.有必要时关闭 linux 防火墙

systemctl stop firewalld

祝大家顺利安装mysql。