一、拉取mysql镜像
docker pull mysql
二、启动容器,并把配置文件和数据文件挂在到本地磁盘,MYSQL_ROOT_PASSWORD:配置root默认密码
docker run -di --name mysql -p 3306:3306 -v D:\mysql\conf:/etc/mysql/conf.d -v D:\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
三、进入到容器
docker exec -it mysql /bin/bash
四、在容器中连接mysql服务
mysql -u root -p 123456 提示 Access denied for user ‘root@localhost‘ (using password:YES)
五、如何解决第四步出现的错误
1、在容器中修改mysql 的配置文件my.cnf,在在配置文件中添加 skip-grant-tables ,这样mysql可以免密登录。
2、保存配置文件,重启容器服务,直接输入mysql命令即可进入到mysql服务
3、再次连接mysql数据库,切换到mysql数据库,重置密码
flush
privileges
;
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘yourpassword‘;
4、刷新权限
flush privileges;
5、修改配置文件my.cnf,删除 skip-grant-tables,重启,在登录
六、Navicat 连接工具连接mysql数据库,提示mysql caching_sha2_password cannot be loaded:
8.0版本之前的mysql加密规则是mysql_native_pssword,8.0版本之后是caching_sha2_password【强加密规则】,但是现在navicat还不支持最新的加密规则
修改密码规则为mysql_native_pssword