Java连接MySQL的常见问题
电脑不久前重做系统,很多东西忘记以前怎么配置的,今天jdbc连接MySQL的时候发生了一点儿问题,小小总结一下:
1.java.sql.SQLException: Unknown character set index for field ‘255’ received
可能原因及解决方法1:MySQL的版本高,而mysql的jar版本过低,导致编码错误,所以需要把jar升级到相对应的版本即可解决。我的MySQL是8.0.19,jar包也是相同版本。
jar下载地址:https://dev.mysql.com/downloads/
可能原因及解决方法2:编码不匹配,直接在连接的URL后加上
?useUnicode=true&characterEncoding=utf8
就可以解决了
可能原因及解决方法3:时区不正确,和上一个解决方法类似,直接在连接的URL后加上
serverTimezone=UTC
就可以解决
注意:可能是2、3同时都有问题,那么这个时候上述两条语句的需要通过&符号连接
?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
2.java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES/NO)
这个问题我曾遇到过一次,把MySQL的服务重新启动一次就解决了,我觉得就是相关的,要么就是MySQL的密码不正确,要么就是更改配置后没保存。把MySQL服务重新启动一次,再把MySQL的连接刷新,重新连接一次,问题应该就可以解决
3.Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
可能原因及解决方法:mysql-connector包使用了新的驱动,以前的类被弃用了。将com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver即可