0

我正在尝试连接到我的raspbery pi. 我已经mysql在 pi 上下载并已经在那里创建了一个数据库。我正在尝试使用驱动程序管理器进行连接。

这是我的代码:

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为。我查看了其他配置文件,但无法找到另一个 max_allowed_pa​​cket 字段进行编辑。此外,我使用了命令:in 。32MmysqldumpSET GLOBAL max_allowed_packet=32M;mysql

我很好奇的一件事是主机名是否错误。我使用端口 99 SSH 到 pi,但也许我在连接时使用不同的端口DriverManager?默认端口mysql是 3306,我试过了,但没有连接。

最后,我正在使用,据我了解,它本质上是 mysql,因为我使用该命令mariadb登录。mysql -u root -p任何帮助将非常感激。

4

1 回答 1

3

MySQL 服务器和客户端(在本例中为 JDBC)都必须增加 max_allowed_pa​​cket 的设置。最大值实际上是客户端和服务器配置中的较小值。

对于服务器,您可以使用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

于 2017-09-23T15:49:02.013 回答