1、安装docker
sudo apt-get update
sudo apt install docker.io
2、拉取MySQL的镜像
# 由于最新版是mysql8.0,就不用写版本号tag了
docker pull mysql
运行完以上命令之后,镜像就已经下载下来了
3、查看镜像情况
docker images
image
可以看到MySQL8.0的镜像已经有了,tag是latest。,表明是最新的。
4、第一次启动MySQL
docker run -p 3306:3306 --name MYSQL8.0 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
解释下这条命令的参数:
-
-p 3306:3306
:将容器内的3306端口映射到实体机3306端口 -
--name MYSQL8.0
:给这个容器取一个容器记住的名字 -
-e MYSQL_ROOT_PASSWORD=123456
:docker的MySQL默认的root密码是随机的,这是改一下默认的root用户密码 -
-d mysql:latest
:在后台运行mysql:latest镜像产生的容器
之后的第二次启动直接用docker start MYSQL8.0即可,不需要docker run
5、遇到的问题
新装了mysql8.0后再用navicat链接就会报2059的错误。
上网查了发现是8.0之后mysql更改了密码的加密规则,只要在命令窗口把加密方法改回去即可。
首先使用以下命令进入MySQL的docker容器
docker exec -it MYSQL8.0 bash
然后登录MySQL
mysql -uroot -p123456
然后运行以下SQL即可
alter user 'root'@'%' identified by '123456' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
网友评论