jdbc mysql报错问题

Spike_Li 2018-07-23 06:20:00
做数据库课设时候使用mysql,在通过jdbc连接的时候就是连接不上,但通过控制台和workbench root账户可以正常连接,请问这是怎么回事?
代码如下
import java.sql.*;
public class connectdt {//此类为连接数据库的类
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/Test";
static final String USER = "root";
static final String PASS = "lihaonan1";
String struser = "username", strpass = "password", strtable1 = "admindt", strtable2 = "books",ID="id";
Connection conn = null;
Statement stmt = null;

public connectdt() {
try {
Class.forName(JDBC_DRIVER);// 工程要连接额外的jar包
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
} catch (Exception ee) {
ee.printStackTrace();
}
}
}

报错如下
Mon Jul 23 18:19:23 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Exception in thread "main" java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at com.mysql.cj.jdbc.admin.TimezoneDump.main(TimezoneDump.java:70)

使用的是8.0.11的mysql版本 macos系统
...全文
543 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸣鸣Amadues 2018-07-23
  • 打赏
  • 举报
回复
引用 2 楼 qq_36792716 的回复:
版主说的好像加了没有起作用哎。。。 我驱动用的8.0.11的。。是不是要换回来啊?

看错误描述,你应该把useSSL设置成false,如果不设置的话默认是true,这时你要提供证书
Spike_Li 2018-07-23
  • 打赏
  • 举报
回复
版主说的好像加了没有起作用哎。。。 我驱动用的8.0.11的。。是不是要换回来啊?
  • 打赏
  • 举报
回复
在mysql连接字符串url中加入ssl=true或者false即可,如下所示。


url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧