Docker安装Mysql多版本

 

Mysql5.7

下载镜像

> docker pull mysql:5.7

# 下载需要一定时间
# 下载完成后可以使用以下命令查看镜像
> docker images

 

 

创建并运行容器

docker run -di --name mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

# 使用一下命令可以查看当前运行的容器
docker ps
  • --name mysql5.7:代表容器的名字
  • -p:代表端口映射,格式为宿主机映射端口:容器运行端口
  • -e:代表添加环境变量,MYSQL_ROOT_PASSWORD是root用户的登陆密码
  • mysql:5.7:表示使用的镜像以及版本号

 

连接Mysql

 

使用命令行连接

mysql -uroot --host 127.0.0.1  --port 33306 -p123456

 

使用上面的命令能直接连接成功。

 

使用MySQLWorkbench连接

image.png

 

也能连接成功:

image.png

 

 

总结

使用mysql:5.7版本的docker镜像,创建并启动容器后可以直接使用,默认在启动的Mysql中已经添加了'root'@'%'用户,并具有所有权限。

 

Mysql8

 

下载镜像

> docker pull mysql:8.0

# 下载需要一定时间
# 下载完成后可以使用以下命令查看镜像
> docker images

 

 

创建并运行容器

docker run -di --name mysql8.0 -p 33307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

# 使用一下命令可以查看当前运行的容器
docker ps

 

连接Mysql

 

使用命令行连接

mysql -uroot --host 127.0.0.1  --port 33307 -p123456

 

使用上面的命令能直接连接成功。

 

使用MySQLWorkbench连接

image.png

 

但是连接不成功:

image.png

 

 

使用刚刚的命令行登录到mysql中,或者使用下面的命令行直接登录到docker容器中,然后登录到mysql中

 

docker exec -it mysql8.0 /bin/bash

 

然后使用下面的SQL语句修改'root'@'%'用户的验密方式:

 

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

 

执行完成后,MysqlWorkbench也能连上Mysql了。

 

总结

使用mysql:8.0版本的docker镜像,创建并启动容器后可以直接使用Mysql命令行连接成功,但是因为Mysql8更换了验密方式,所以需要做进一步处理才能让其他客户端工具连接成功。

 

posted on 2020-08-31 16:46  pipizhou  阅读(676)  评论(0编辑  收藏  举报