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。