gpt4 book ai didi

java - JDBC 连接失败 : java. sql.SQLException: Communication link failure: Bad handshake

转载 作者:行者123 更新时间:2023-11-30 23:44:37 27 4
gpt4 key购买 nike

我是 JDBC 的新手。我在尝试将我的 java 程序与 Mysql 数据库连接时遇到了 SQLException。

请在下面找到运行时错误的详细信息:

Exception in thread "main" java.sql.SQLException: Communication link failure: Bad handshake
at com.mysql.jdbc.MysqlIO.init(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at databaseexample.DatabaseExample.connect(DatabaseExample.java:40)
at databaseexample.DatabaseExample.main(DatabaseExample.java:26)
/home/sreejith/.cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned: 1

Program Details :
package databaseexample;
import java.sql.*

;

public class DatabaseExample {

static boolean flag = false;
static String DBURL = "jdbc:mysql://localhost:3306/testdb";


static String CHECK_SQL_QUERY = "SELECT 1";
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// TODO code application logic here
Class.forName("com.mysql.jdbc.Driver");
flag = connect();
if(flag == true)
{
System.out.println("Connnected !");
} else
{
System.out.println("not connected.");
}



}

public static boolean connect() throws SQLException {
Connection conn = DriverManager.getConnection(DBURL,"root","root");

return true;
}

}

我尝试telnet 3306端口,结果如下:

sreejith@desktop:~$ telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
[
5.7.19-0ubuntu0.16.04.1*4` `iw2)Ml,L*
Lmysql_native_password

!#08S01Got packets out of orderConnection closed by foreign host.

顺便说一下,我在 ubuntu 16.04 上运行。提前致谢:)

最佳答案

试试这个方法:

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

public class Connection
{
private static java.sql.Connection connection;

public Connection(String serverAddress, String database, String user, String pass) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://" + serverAddress + ":3306/" + database;
connection = DriverManager.getConnection(url, user, pass);
}

public java.sql.Connection getConnection()
{
return connection;
}
}

关于java - JDBC 连接失败 : java. sql.SQLException: Communication link failure: Bad handshake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com