zoukankan      html  css  js  c++  java
  • JDBC 连接 Mysql 过程中注意事项及各类问题解决方案

    在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程序,这次就应该没问题的了.....吧。  

      

  • 相关阅读:
    老毛桃装系统详解
    Eclipse常用快捷键
    oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)
    java编程中Properties类的具体作用和使用!
    电感、磁珠和0欧电阻
    AXI总线(转)
    NOR Flash的学习
    allegro中如何添加安装孔(注:在PCB图纸中添加)
    转:一个计算机专业毕业的银行员工工作感受
    Allegro中常见的文件格式
  • 原文地址:https://www.cnblogs.com/bomdeyada/p/13336617.html
Copyright © 2011-2022 走看看