docker安装mysql8.0

1、安装docker

sudo apt-get update
sudo apt install docker.io

2、拉取MySQL的镜像

# 由于最新版是mysql8.0,就不用写版本号tag了
docker pull mysql

运行完以上命令之后,镜像就已经下载下来了

3、查看镜像情况

docker images

20200115175423

可以看到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;
# docker  mysql 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×