我正在尝试连接到raspbery pi
上的数据库。我已经在pi上下载了mysql
,并且已经在那里创建了一个数据库。我正在尝试使用驱动程序管理器进行连接。
这是我的代码:
public static void main(String[] args) {
try {
String host = "jdbc:mysql://scheduleit.duckdns.org:99/scheduleit";
String uName = username;
String uPass = password;
Connection con = DriverManager.getConnection(host, uName, uPass);
} catch (SQLException e) {
e.printStackTrace();
}
}
我已进入配置文件并将max_allowed_packet
更改为[32M
的{{1}}。我查看了其他配置文件,无法找到另一个要编辑的max_allowed_packet字段。此外,我在mysqldump
中使用了命令SET GLOBAL max_allowed_packet=32M;
。
我很好奇的一件事是主机名是否错误。我使用端口99进入pi,但是当我与mysql
连接时,我可能会使用不同的端口? DriverManager
的默认端口是3306,我试过了,但没有得到连接。
最后,我正在使用mysql
,我的理解基本上是mysql,因为我使用mariadb
命令登录。任何帮助将非常感激。
答案 0 :(得分:2)
MySQL服务器和客户端(本例中为JDBC)都必须增加max_allowed_packet的设置。 max实际上是客户端和服务器配置的 less 。
对于服务器,您可以使用SET GLOBAL max_allowed_packet
进行更改。您还应该在服务器的my.cnf
文件中更改它,因为服务器重新启动时SET GLOBAL
更改会丢失。
对于客户端,如上面Michael所述,您可以将其指定为JDBC URL中的属性。除了JDBC属性拼写为 camelCase 。
String host = "jdbc:mysql://scheduleit.duckdns.org:99/scheduleit?maxAllowedPacket=33554432";
有关JDBC URL属性的更多文档,请参阅https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html。