在JAVA连接mysql的过程中注意问题如下:
java连接数据库的代码:
package javaDateBaseConnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJavaDataBaseConnection { public static final String URL = "jdbc:mysql://localhost:3306/testjavadb?useSSL=false"; public static final String USER = "root"; public static final String PASSWORD = "Tanhao0508"; public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); System.out.println(conn); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM students"); while (rs.next()) {
System.out.println(rs.getString("name")+" identity:"+rs.getString("identity")); } conn.close(); } }
按照正常的文档套路来操作时,首先会出现第一个 系统异常:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
解决方案:
这是因为系统在加载类的时候找不到该类,里没有咱们需要用到的jar包:mysql-connector-java
所以先下载: https://pan.baidu.com/s/1c1KNjtm 密码:eyrm 注意下载后先解压
之后Eclipse导入外部JAVA包:
选择菜单栏中【Project】->【Properties】->【Java Build Path】命令。
当你完成这些步骤之后,运行你的java程序,你可能会遇到你的第二个 系统异常:
Sat Jul 18 16:20:51 CST 2020 WARN: Establishing SSL connection without serve
解决方案:
需要设置你的mysql 全局系统等待时间:
设置: set global wait_timeout = 1814400;
查看效果:
当你完成这步操作之后,请重启一下你的Mysql服务器,之后重写运行你的java程序,你可能会遇到你的第三个 系统异常:
WARN: Establishing SSL connection without server's identity verification is not recommended.
解决方案:
原因是MySQL在高版本需要指明是否进行SSL连接。
在mysql连接字符串url中加入?useSSL=false 即可,(
public static final String URL = "jdbc:mysql://localhost:3306/testjavadb?useSSL=false";
)
当你完成这些步骤之后,运行你的java程序,你可能会遇到你的最后一个 系统异常:
java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.
解决方案:
在此通过查资料详情解释说明下
为了提供更安全的密码加密,
MySQL8.0的首选默认认证插件是caching_sha2_password,
而不是mysql_native_password
解决方式或者注意事项:
1.对于MySQL 8.0的升级,身份验证插件现有帐户保持不变,包括’root’@'localhost’管理帐户的插件
2.对于新的MySQL 8.0安装,在初始化数据目录时(使用 第2.10.1节“初始化数据目录”中的说明),将 ‘root’@'localhost’创建帐户,并且该帐户caching_sha2_password默认使用.
3.对于新的MySQL 8.0安装,还想使用之前的密码认证方式请使用:
当你查看你的Mysql 配置时,你会发现你的首选默认插件样式全部为 同一个:caching_sha2_password
select host,user,plugin from user;
所以修改你的root 默认验证样式:
select host,user,plugin from user; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密码';
之后重启你的Mysql服务器 ,运行java程序,这次就应该没问题的了.....吧。