eclipse通过JDBC连接远程服务器MySQL数据库

1.刚开始自己没有使用JAVAEE的eclipse去连接MySQL,结果死活连接不上,驱动根本无法加载,后来使用JAVAEE的eclipse才可以。

JDBC架包(mysql8.0版):

链接:https://pan.baidu.com/s/1pLxqPKKYXjez1e6LT_fwUQ 
提取码:cns1 
 

2.直接上代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Demo {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          

        try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://数据库IP地址(本地为localhost):port/库名?useSSL=false&serverTimezone=GMT", "账号", "密码");
            System.out.println(conn);            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

这里需要注意MySQL8.0和低版本不同的地方:DB_DRIVER要写com.mysql.cj.jdbc.Driver,并且DB_URL后面要加上useSSL和serverTimezone

3.关于  ?useSSL=false&serverTimezone=GMT  这行代码:

3.1:如果不适用serverTimezone=GMT,会报以下错误:

  • 原因:服务器时区值“????±××?±?无法识别或代表一个以上的时区。如果希望利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。出现这个的原因是因为 mysql返回的时间总是有问题,比实际时间要早8小时。
  • 解决方案:在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区

3.2、如果不适用useSSL=false,会报以下错误:

  • 但是这并不影响你的操作
  • 原因:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+,如果未设置显式选项,则默认情况下必须建立5.6.26+和5.7.6+要求的SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并提供用于服务器证书验证的信任库(测试学习阶段我们没必要搞那么复杂)。
  • 解决方案:所以只要在url后面添加useSSL=false语句即可。

你可能感兴趣的:(服务器MySQL)