docker下安装mysql镜像

一、拉取mysql镜像

  docker pull mysql

二、启动容器,并把配置文件和数据文件挂在到本地磁盘,MYSQL_ROOT_PASSWORD:配置root默认密码

  docker run -di --name mysql -p 3306:3306 -v D:mysqlconf:/etc/mysql/conf.d -v D:mysqldata:/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)

  docker下安装mysql镜像

五、如何解决第四步出现的错误

  1、在容器中修改mysql 的配置文件my.cnf,在在配置文件中添加 skip-grant-tables ,这样mysql可以免密登录。

  docker下安装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