docker mysql远程连接,版本为最新的8.0

第一步:拉取镜像    我拉取的是最后版本

第二步:使用命令

          docker run --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d  mysql

          主要命令是 -e MYSQL_ROOT_PASSWORD=123456 这个意思是把mysql密码设置为123456

第三部:

          docker exec -it mysql /bin/sh 

    进入容器内  然后执行   mysql -uroot -p123456

第四部:

     使用命令 use mysql;

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

      之前在网上搜索了很多,发现没用,这个镜像里面 root用户已经有远程连接权限在里面,所以不需要去设置,只模式不一样才导致无法连接。

     这条命令意思是 把root用户的密码改成 mysql_native_password 模式   原因是我用的是

      

      所以要更改那个密码模式,到此就可以连接了,

mysql8 sql_mode=only_full_group_by问题解决

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

 执行这两条命令,然后重新连接就可以了。

原文地址:https://www.cnblogs.com/wangdongpython/p/11730494.html