【问题标题】:Slow connection after connection to database with web-hosting使用虚拟主机连接到数据库后连接缓慢
【发布时间】:2019-09-10 16:54:16
【问题描述】:

标题##我的 java 应用程序在 mySQL 和 swing GUI 中的数据库存在问题。

当我使用 localhost 时,一切正常。但现在我想和我的朋友分享项目,我们决定使用服务器托管。 这是一个问题: 现在应用程序工作得很慢,按下按钮后我必须等待几秒钟才能让程序响应。此外,连接有时会丢失。我不知道在哪里可以找到问题的原因......现在有人知道这个问题的原因是什么吗?

    private static Connection connection = null;
    Boolean error = false;
    private static String jdbcURL = "jdbc:mysql://host_name:3306/db_name";
    private static String user = "user";
    private static String password = "password";

    MakeConnection(Connection connection) throws SQLException{
        this.connection = connection;
    try {
        getConnection();
        System.out.print("Connected to the data base in MakeConnection");       
        }
        catch(Exception e) {
            error = true;
            System.out.print("Error in connection in MakeConnection consturctor" + e.getMessage());
            }

        finally{
        if(connection!=null)            connection.close();
        if(error)                       System.out.print("Problem with connection");
        else                            System.out.print("Program finished");
        }
    }
    public Connection getConnection() throws SQLException {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection(jdbcURL,user,password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return connection;
    }
}

有时应用程序也会显示此错误: 最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有收到服务器发来的任何数据包。

【问题讨论】:

  • 我可以知道托管数据库和应用服务器的区域吗?
  • PING host_name.com 以及简单的 ping 需要多长时间?将成为基本连接难度的指标。
  • 使用 32 字节数据 Ping serwer1990494.home.pl [46.242.244.226]:来自 46.242.244.226 的回复:字节=32 时间=15 毫秒 TTL=56 来自 46.242.244.226 的回复:字节=32 时间=16ms TTL=56 来自 46.242.244.226 的回复:字节=32 时间=16ms TTL=56 来自 46.242.244.226 的回复:字节=32 时间=16ms TTL=56 46.242.244.226 的 Ping 统计信息:数据包:已发送 = 4,已接收 = 4,丢失 = 0(0% 丢失),以毫秒为单位的近似往返时间:最小值 = 15 毫秒,最大值 = 16 毫秒,平均值 = 15 毫秒
  • Ping 看起来不错,但我的代码中有此错误:通信链路故障最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有从服务器收到任何数据包。

标签: java mysql database database-connection hosting


【解决方案1】:

我在您的代码中没有发现任何问题。问题可能与您的服务器托管有关。您应该检查主机提供商所在的国家/地区并测量向服务器发送请求所需的时间。此外,您应该使用 logger 而不是 System.out.println,这样您就可以检查数据库访问、应用程序逻辑等操作所需的时间并找到瓶颈。

【讨论】:

  • 我的代码中有这个错误:通信链路故障最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有从服务器收到任何数据包。
  • 好的,谢谢。我检查了这些链接并尝试解决我的问题,但我发现了一些奇怪的东西。在 my.ini 文件中,我没有与“bind-adress”idk 相关的原因。我应该自己添加这一行:bind-adress = 127.0.0.1 还是留下?
  • 我不能给你确定的答案,因为我没有看到你的整个服务器配置。尝试实验。另外我建议您使用记录器来获取有关未来错误的更多信息。
猜你喜欢
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 2014-02-18
相关资源
最近更新 更多