接着我上一篇的,在我们安装好docker后我们尝试在docker里面安装mysql并连接使用
正式开始
1、启动docker
2、打开Windows PowerShell(执行下载命令)
`docker pull mysql:latest`
latest:下载官方最新版本,也可以替换成自己 想要的版本
示例:
`docker pull mysql:5.7`
执行命令后我们打开docker可以看到多了一个mysql容器
接下来我们一起配置mysql
启用mysql实例
`docker run --name mingxie-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:latest`
--name 后面的是docker容器名 -p 3306:3306 这里需要注意 `:前面的是` 你连接mysql的时候的`Port`。 -e MYSQL_ROOT_PASSWORD 是设置mysql的root账号密码 -d mysql 是你的镜像标签 docker ps 查看正在运行镜像 docker ps -a 查看所有已下载镜像 如果能看到自己的实例表示已经成功了
那我们尝试用Navicat来连接
我们可以看到是连接失败的那是因为mysql8以上密码加密规则变了,需要修改加密规则
解决方法:
1:查看当前mysql容器id或名称 docker ps
2:进入该容器中 docker exec -it xxxx(id或name) /bin/bash
-i:即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。
-t:分配一个伪tty,一般与 -i 连用。
tty:各种类型的终端设备.
3:进入mysql mysql -uroot -p
4:授权 GRANT ALL ON *.* TO 'root'@'%';
5:刷新权限 flush privileges;
6:更改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
7:更新root用户密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
8:刷新权限 flush privileges;
连接成功啦,好的有不懂的,或错误地方欢迎大家评论指出来。