目的:
尝试使用 docker 安装 最新版 mysql,并连接使用。
系统环境: win10
1、查看可用的 MySQL 版本
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags
2、拉取 MySQL 镜像
$ docker pull mysql:latest
3、查看本地镜像
可以使用 docker images 命令来查看;
$ docker images
4、运行容器
docker run -itd --name mysql-local -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
命令说明:
- -p 3306:3306:将容器的3306端口映射到主机的3306端口
- -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
- -d: 后台运行容器,并返回容器ID
- imageID: mysql镜像ID
5. 查看容器是否启动成功
1. 通过命令方式
docker ps
2.也可以使用 docker desktop 软件查看。
6. 容器启动成功后,Navicat 无法连接
1. 通过命令查看安装的 mysql 版本
进入命令行模式可以通过 以下命令:
docker exec -it mysql-local /bin/bash
或者通过软件:如图进入命令行模式:
发现 mysql 版本为 8.0.21.需要做远程连接授权和加密规则更改
1)登录 mysql
mysql -u root -p
2)远程授权连接
// 授权
GRANT ALL ON *.* TO 'root'@'%';
//刷新权限
flush privileges
3) 更改加密规则
//更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//刷新权限
flush privileges;
头痛的是:修改完成后,Navicat 可以连接了,但是我通过 docker desktop 的命令行连接不了了,尚不清楚原因
参考地址:https://www.runoob.com/docker/docker-install-mysql.html