gpt4 book ai didi

mysql - 如何通过 java jdbc 连接到位于 Namecheap 服务器上的 MySQL 数据库?

转载 作者:行者123 更新时间:2023-11-29 21:19:12 25 4
gpt4 key购买 nike

Packet for query is too large (4739923 > 1048576). 
You can change this value on the server by setting the max_allowed_packet' variable.

这个错误就是我的终结。在我尝试访问的服务器上,这个 max_allowed_pa​​cket 远大于 1,048,576。

我花了很长时间才解决这个问题,求助于尽可能多的论坛。这应该很简单。我想从计算机上的 Java 程序连接到 namecheap 服务器上的 MySQL 数据库。我有 IP 地址和 ssh 端口。我可以完全访问数据库并从 mySQL Workbench 进行查询。

这是我的代码

package testingdb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.jcraft.jsch.Session;
import com.jcraft.jsch.JSch;
import com.mysql.jdbc.Driver;


public class DatabaseTesting {



public static void main(String[] args) {
String huser = "user";
String hpass = "*********";
String userName = "username_user";
String password = "*********";
String host = "<My web server>";
String url = "jdbc:mysql://<My Web Server>:<port>/";
Session session= null;
try {

java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");

JSch jsch = new JSch();
session = jsch.getSession(huser, host, <port>);
session.setConfig(config);
session.setPassword(hpass);
session.connect();
System.out.println("Connected through SSH");
session.setPortForwardingL(3306, "127.0.0.1", <port>);


Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Logging into Database: "+ userName);
Connection con = DriverManager.getConnection(url, userName, password);
System.out.println("Server connected successfully");
//Statement st = con.createStatement();
//ResultSet results = st.executeQuery("SELECT * FROM NPC_DATA");
//System.out.println(results);

}
catch(Exception e) {
System.out.println("connection failed . . .");
System.out.println(e.getMessage());
}
}
}

我的 hpass 和用户在我输入时都是正确的(出于明显的原因我隐藏了它们)我不确定会出现什么问题。帮助告诉我 Namecheap 不能使用 Java 运行,但是如果我的客户端使用 JAVA 连接到服务器,这应该重要吗?非常感谢。

最佳答案

您可以尝试更改这些行吗?

    session.setPortForwardingL(<local port>, "<My web server>", <remote port>);

这将在您的网络服务器上创建一个监听远程端口的本地端口。现在您需要与本地端口建立连接,因此 url 将更改为:-

String url = "jdbc:mysql://localhost:<local port>/";

关于mysql - 如何通过 java jdbc 连接到位于 Namecheap 服务器上的 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785235/

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