【问题标题】:How to successfully access the database on another computer using java and jdbc and sql?如何使用java和jdbc和sql成功访问另一台计算机上的数据库?
【发布时间】:2012-10-14 19:40:32
【问题描述】:

我在另一台电脑上有这个数据库,我想通过使用这样的连接字符串来访问它。

Class.forName("com.mysql.jdbc.Driver");
         con = DriverManager.getConnection("jdbc:mysql://192.168.0.1/dbtina","root","1234");

“dbtina”是我们的数据库。 “1234”是我们的密码。我们已经将我们的 ip 配置为这样,因为我们使用的是有线连接(点对点)。

Exception: Communications link failure

Last packet sent to the server was 0 ms ago.*

我该如何解决这个问题?

【问题讨论】:

    标签: java mysql jdbc


    【解决方案1】:

    只需禁用防火墙。或者为mysql打开3306端口 如果有帮助,请使用此链接

    manually open port

    即使在这样做之后,您也可能会遇到安全异常。使用 mysql GRANT 查询授予权限。

    mysql> 将 db_base.* 上的所有权限授予 db_user @'ip_address' 由 'db_passwd' 识别;

    grant example

    【讨论】:

      【解决方案2】:

      在DB所在计算机的防火墙上打开3306端口。

      【讨论】:

      • 嗯,首先,您可以提供一些详细信息...您在带有数据库的计算机上使用什么操作系统?您在那里使用哪种防火墙或防病毒软件?从您的评论来看,我还想问一下运行程序的计算机的IP是什么...
      【解决方案3】:

      您必须在数据库计算机上配置防火墙,以允许来自特定端口上不同计算机的流量。

      【讨论】:

        【解决方案4】:
        GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
        

        【讨论】:

          【解决方案5】:

          相应地更改您的代码:

          Class.forName("com.mysql.jdbc.Driver");         
          con = DriverManager.getConnection("jdbc:mysql://192.168.0.1:3306/dbtina",
            "root","1234");
          

          【讨论】:

            猜你喜欢
            • 2017-03-08
            • 2012-03-09
            • 1970-01-01
            • 2021-10-25
            • 1970-01-01
            • 1970-01-01
            • 2014-02-19
            • 2014-12-26
            • 1970-01-01
            相关资源
            最近更新 更多