java - 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:握手错误

标签 java mysql exception jdbc

我有以下java代码。

Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/shincy_intrn","shincy_intrn","shincy");
Statement st=con.createStatement();
int result=st.executeUpdate("insert into test(name)values('Swapna')");
if(result>0)
        System.out.println("Inserted");

当我执行代码时,出现以下异常,

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Bad handshake
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4098)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4030)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:951)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1717)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2389)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2422)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2207)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:797)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at TestDb.main(TestDb.java:17)

我在linux服务器上使用eclipse和mysql5.5.38

最佳答案

确保目录和文件都具有相同的文件/目录所有权。

我在升级 gerrit 时遇到了这个问题,并尝试了所有可能性,最后发现 gerrit 下的一些目录和文件的所有者是 root,而不是启动 gerrit 的用户。

chmod -R 用户:组*

关于java - 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:握手错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25927093/

相关文章:

java - Java 中的 Shell 排序算法变体

java - 在jaxb中转换xs :string to java. util.UUID

mySql SELECT GROUP_CONCAT 查询不返回长文本单元格中的所有数据

java - 为什么不能在通用 catch 子句中捕获自定义异常

exception - 不能仅在 mli 文件中定义异常

java - 无法使用 selenium webdriver 从日期选择器中选择日期

java - 如何跳过父类(super class)表的模式生成? Java/JPA/Hibernate/注释/Maven/hbm2ddl

mysql - 在一个查询 MySql 中选择插入和更新

mysql - 使用单个查询从多个数据库中获取多条记录

java - Java NoClassDefFoundError(名称错误)