docker安装mysql8

docker pull mysql:8.0.18

docker images

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

docker ps是否安装成功;

进入容器 docker exec -it 容器id bash

进入数据库 mysql -uroot -p123456

use mysql;

select host,user from user; 让root能远程连接,host修改为"%"

 

 修改host为%的方法 update user set host='%' where user='root';

navicate for mysql 远程连接

use mysql;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;

此时使用navicat for mysql 远程连接,提示认证问题,因为mysql8及之后的加密规则与之前版本的不同,

 ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

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

FLUSH PRIVILEGES; #刷新权限;

这样navicat for mysql就可以连接数据库了;

docker commit 容器id  指定要创建的镜像名:版本号

备注:ip:3306始终访问不了,无解ing;

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/12161409.html