【问题标题】:How to connect to online mysql database from Java desktop app如何从 Java 桌面应用程序连接到在线 mysql 数据库
【发布时间】:2014-05-01 19:21:58
【问题描述】:

我铺平了付费托管,并将我的数据库添加到其中。我正在尝试从我的 java 桌面应用程序连接到此在线数据库,但是出现异常:通信链接故障。

这是我的代码:

public Kviz_DAO(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
        konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename?"+
                "user=mydbuser&password=mydbpassword");
    }
    catch(Exception ex){
        ex.printStackTrace();
    }
}

谁能告诉我我做错了什么。

【问题讨论】:

  • 尝试 ping 你的数据库服务器。
  • 确保您已连接到互联网 ;)
  • 确保您的 mysql 服务器可用于 Internet 并且 mydbuser 获得连接数据库的权限

标签: java mysql eclipse hosting


【解决方案1】:

MySQL 的默认端口是 3306。您确定您使用的主机名和端口是正确的吗?

试试这个:

    konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename", mydbuser, mydbpassword);

检查这个:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure

您可以使用 MySQL 管理员连接吗?

【讨论】:

  • 我已将主机名更改为 cpanels 共享 IP 地址,不知道是否应该这样做?
  • 我不知道你在说什么。请说清楚。或许可以尝试通过 MySQL 管理员连接,让我们知道这是否有效。
  • 我在我的 cPanel 中创建了 mysql 数据库。我可以从 cPanel phpMyAdmin 看到数据库和表,但是我不知道如何从 java 桌面应用程序连接到它,我真的不知道我的主机的名称是什么,以及如何检查它?
  • 那么你遇到了更大的问题。你从哪里得到这些的?刑罚.ba:2082。 PHP 与 Java 解决方案有什么关系?我会忘记 PHP 管理员和所有其他东西。只需编写一个简单的 Java 类来连接数据库即可。
  • penal.ba 是我的 cPanel 的主域。我不确定连接到数据库的简单 Java 类是什么意思,我正在尝试在我在这里发布的代码部分中做到这一点。当我使用 mysql localhost 数据库时,我的代码工作正常,但我不会使用在线 mysql 数据库。如果您有一些示例或教程,我将不胜感激。
【解决方案2】:

检查,如果您的 IP 的数据库服务器中有权限。如果不是,则GRANTIP

的权限
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

如果不起作用,请检查防火墙

【讨论】:

    【解决方案3】:

    示例代码:

    String url1 = "jdbc:mysql://localhost:3306/";
    String db1 = "userdb";
    String driver1 = "com.mysql.jdbc.Driver";
    String user1 = "root";
    String pass1 = "sarakrish";
      try {
              Class.forName(driver1).newInstance();
              con = DriverManager.getConnection(url1 + db1, user1, pass1);
    

    你应该试试这个方法:

    String url = "jdbc:mysql://penal.ba:2082/";
    String db = "mydatabasename";
    String driver = "com.mysql.jdbc.Driver";
    String user = "mydbuser";
    String pass = "mydbpassword";
                Class.forName("com.mysql.jdbc.Driver");
                konekcija = DriverManager.getConnection(url+db,user,pass);
    

    【讨论】:

      【解决方案4】:

      下载连接器 J 。将其添加到您的类路径和代码中:

      // This will load the MySQL driver, each DB has its own driver
      Class.forName("com.mysql.jdbc.Driver");
      // Setup the connection with the DB
      connect = DriverManager
        .getConnection("jdbc:mysql://remoteUri/database-name?"
            + "user=user&password=userpw");
      

      【讨论】:

        【解决方案5】:
        Connection konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename?" + "user=mydbuser&password=mydbpassword");
        //konekcija should be an object of Connection class.....I think :-p
        

        【讨论】:

        • 请正确格式化您的答案并稍微解释一下,使其符合本网站的标准。
        【解决方案6】:

        如果您无法连接到远程 MySql 数据库,这是由于托管公司/服务器的权限。您可以通过为您的 ip 添加权限来解决此问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多