windows使用docker安装MySQL

1.查看仓库可用mysql版本

docker search mysql
windows使用docker安装MySQL_第1张图片

2.拉取mysql镜像

指定版本的话命令如下

 docker pull 镜像名称:版本号

我这里拉取最新的

docker pull mysql:latest
windows使用docker安装MySQL_第2张图片

3.查看镜像是否下载成功

 docker images

4.运行容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明:

docker run // 启动容器

--name mysql-test // 指定容器名称为mysql8.0

-e MYSQL_ROOT_PASSWORD=123456 // 配置环境变量,指定root用户的密码为123456

-p 3306:3306 // 映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。

5.查看容器是否安装成功

 docker ps

6.宿主机连接mysql,会发现连接失败,主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

windows使用docker安装MySQL_第3张图片

7.进入容器

 docker exec -it mysql-test /bin/bash

8.登录mysql

 mysql  -u root -p 123456
windows使用docker安装MySQL_第4张图片

9.查看认证插件

select user,plugin from user
windows使用docker安装MySQL_第5张图片

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。两种方式一种是升级客户端,另一种是修改插件认证为 mysql_native_password,我们看一下第二种。

// 修改root的密码为'root',摒弃原来的旧密码。

//使用mysql_native_password对新密码进行编码。 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

// 刷新权限

FLUSH PRIVILEGES;

重新使用客户端工具navicat mysql发现可以连接上容器里的mysql

windows使用docker安装MySQL_第6张图片

10.在容器里创建一个测试数据库,验证宿主机是否一样

创建前的数据库

windows使用docker安装MySQL_第7张图片
 create database test
windows使用docker安装MySQL_第8张图片

打开navicat 查看

windows使用docker安装MySQL_第9张图片

11.添加新用户

 #创建用户
 CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 
#分配权限
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'; 
#刷新权限
FLUSH PRIVILEGES;   
windows使用docker安装MySQL_第10张图片

你可能感兴趣的:(windows使用docker安装MySQL)