java - 如何在线连接到多个数据库?

标签 java mysql database database-connection

这里我正在尝试连接到多个数据库这是我的代码,这段代码在本地机器上工作正常但是当我将它上传到网上时这不起作用我可以得到任何帮助提前谢谢你。

package dbase.sqlcon;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionHelper{
    private String url;
    private String restrnturl;
    private String prptyurl;
    private String user= "root";
    private String pass= "mysql";
    private String userRestaurent= "root";
    private String passRestaurent= "mysql";
    private String userProperty= "root";
    private String passProperty= "mysql";

    private ConnectionHelper() {
        try {
            Class.forName("com.mysql.jdbc.Driver");

            URLDecoder.decode(getClass().getClassLoader().getResource("flex/testdrive").toString(), "UTF-8");



            url = "jdbc:mysql://192.168.10.1:3306/desisquare";
            restrnturl="jdbc:mysql://192.168.10.1:3306/foodndine";
            prptyurl="jdbc:mysql://192.168.10.1:3306/postaproperty";

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        if (instance == null) {
            instance = new ConnectionHelper();
        }
        return DriverManager.getConnection(instance.url, instance.user, instance.pass);
    }
    public static Connection getConnectionrestaurent() throws SQLException {
        if (instance == null) {
            instance = new ConnectionHelper();
        }
        return DriverManager.getConnection(instance.restrnturl, instance.userRestaurent, instance.passRestaurent);
    }
    public static Connection getConnectionproperty() throws SQLException {
        if (instance == null) {
            instance = new ConnectionHelper();
        }
        return DriverManager.getConnection(instance.prptyurl, instance.userProperty, instance.passProperty);
    }

}

当我问我的托管服务提供商有什么问题时,他给我发了这个对我来说很新的

INFO | jvm 1 | 2014/04/18 06:23:03 | Exception is ;java.sql.SQLException: Access denied for user 'postaproperty'@'localhost' (using password: YES)
INFO | jvm 1 | 2014/04/18 06:23:03 | Exception is ;java.sql.SQLException: Access denied for user 'postaproperty'@'localhost' (using password: YES)
INFO | jvm 1 | 2014/04/18 06:23:03 | Exception is ;java.sql.SQLException: Access denied for user 'foodndine'@'localhost' (using password: YES)

最佳答案

可能出错的事情太多了。但是正如您所提到的,一旦您尝试从外部访问您的数据库,问题就会发生,而不是此类异常消息可能表明您的数据库由于以下原因无法访问:

-在 my.cnf 中,您应该验证 --skip-networking 是否被注释掉:

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking

据说你的数据库通过 TCP/IP 接受消息

  • 验证您的数据库服务器正在监听 3306 端口
  • 验证 192.168.10.1 是否可以从您的部署站点访问(telnet 192.168.10.1:3306),因为可能有防火墙阻止该端口或 DNS 不知道此 IP 地址。

关于java - 如何在线连接到多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167376/

相关文章:

php - 疑问-mysqli+php函数

Java HttpURLConnection post 方法不起作用

java - @Required 在 Spring 不工作?

java - RichFaces 和 JSF : Where does the fileUpload component upload files?

mysql - 循环遍历mysql子查询结果

mysql - SQL查询多个日期到一个日期

mysql - 可以将一对多关系插入到数据库中吗?

java - 使用内部联接查询运行 count() 时,Room 返回包含一项的列表,而不是空列表

c# - 如何在 ListView 中显示不同表的列

MySQL - 从数据库中选择特定的表