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;