记录使用MySQL8时遇到的一些坑
1.驱动类改动
在原先的MySQL驱动包中(之前用的5.x)Driver类的全类路径是
com.mysql.jdbc.Driver
而在8.x版本的驱动包中其路径为
com.mysql.cj.jdbc.Driver
2.url须添加时区参数
jdbc:mysql://192.168.80.1:3306/ssmdemo?serverTimezone=UTC
否则会报错
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
另外,大家在使用的时候尽量使用对应MySQL版本的驱动包,我这里之前在用5.x的驱动包来连接的时候就发生了一些摸不着头脑的错误。
3.远程连接配置
1.更新mysql数据库中的user表新增一行或者将一个已有的用户的host字段值设置为允许远程连接的IP地址
2.可以设置为一个固定的IP也可以使用%表示所有的IP都可远程连接
3.flush privileges刷新数据库
4.密码策略变化
目前navicat12.x仍只支持mysql之前的密码策略也就是mysql_native_password,想要使用navicat连接MySQL-8的话就需要将caching_sha2_password修改为navicat支持的密码策略,使用如下命令
alter user 'root'@'localhost' identified with mysql_native_password by 'password';