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';
执行这两条命令,然后重新连接就可以了。