之前测试都是用的mysql5.5的环境或者是使用Mariadb的环境 ,没有使用过 Mysql 8所以当环境变成Mysql 8的时候 便遇到了许多问题,为了避免以后忘记,方便随时翻找资料,这里记录一下踩坑情况。
问题1:执行sql :select user, password, host from user;查询用户密码时 提示:ERROR 1054(42S22):Unkown column 'password' in 'field list' 现象如下图所示:
问题原因:password 字段是在mysql 8以下的版本中标记mysql数据库里 user表里的密码字段,但是mysql 8的密码字段改了,改成了:authentication_string
所以当环境变成mysql 8的时候 对应的sql语句应该变成:select user, authentication_string, host from user;
问题2:使用navicat 工具连接 msyql 8的服务器时提示:1251- Client deos not support authentication protocal requested by server; consider upgrading MySQL client。 问题现象如下图(如果通过命令运行的mysql 客户端版本低于8 也会出现类似的提示):
问题原因: mysql8 的密码验证机制跟之前的版本是不一样的,具体表现之一就是上文提到的 密码字段 password 与 authentication_string ,低版本的连接工具使用的密码加密协议是不符合mysql 8 要求的,因此 只需要更换客户端连接工具,使得其支持mysql 8对应的协议即可。
解决办法:可用于Mysql8 的连接工具 ,这里也提供了一个下载链接(23条消息) 适用于Mysql8的navicat工具与jdbc连接驱动-MySQL文档类资源-CSDN文库
安装好新的连接工具按照正常连接方式连接即可。
|