JDBC:连接到远程 mySQL 数据库?

Posted

技术标签:

【中文标题】JDBC:连接到远程 mySQL 数据库?【英文标题】:JDBC: connect to remote mySQL database? 【发布时间】:2013-08-14 07:09:31 【问题描述】:

    public void readDataBase() throws Exception 
    try 
        // 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://185.28.21.11/u505743489_db?"+ "user=u505743489_db&password=password");

        // Statements allow to issue SQL queries to the database
        statement = connect.createStatement();
        // Result set get the result of the SQL query
        resultSet = statement
                .executeQuery("select * from FEEDBACK.COMMENTS");
        writeResultSet(resultSet);

        // PreparedStatements can use variables and are more efficient
        preparedStatement = connect
                .prepareStatement("insert into  FEEDBACK.COMMENTS values (default, ?, ?, ?, ? , ?, ?)");
        // "myuser, webpage, datum, summary, COMMENTS from FEEDBACK.COMMENTS");
        // Parameters start with 1
        preparedStatement.setString(1, "Test");
        preparedStatement.setString(2, "TestEmail");
        preparedStatement.setString(3, "TestWebpage");
        preparedStatement.setDate(4, new java.sql.Date(2009, 12, 11));
        preparedStatement.setString(5, "TestSummary");
        preparedStatement.setString(6, "TestComment");
        preparedStatement.executeUpdate();

        preparedStatement = connect
                .prepareStatement("SELECT myuser, webpage, datum, summary, COMMENTS from FEEDBACK.COMMENTS");
        resultSet = preparedStatement.executeQuery();
        writeResultSet(resultSet);

        // Remove again the insert comment
        preparedStatement = connect
                .prepareStatement("delete from FEEDBACK.COMMENTS where myuser= ? ; ");
        preparedStatement.setString(1, "Test");
        preparedStatement.executeUpdate();

        resultSet = statement
                .executeQuery("select * from FEEDBACK.COMMENTS");
        writeMetaData(resultSet);

     catch (Exception e) 
        throw e;
     finally 
        close();
    


我试过这段代码,但它给出了: 线程“主”java.sql.SQLException 中的异常:null,来自服务器的消息:“不允许主机'mobile-130-126-255-40.near.illinois.edu' 连接到此 MySQL 服务器” 我对此进行了谷歌搜索,似乎我必须授予数据库权限,但我不知道我的 MySQL 命令提示符在哪里。有没有办法在 phpMyAdmin 中授予权限?任何帮助将不胜感激!

【问题讨论】:

打开命令行控制台并从那里执行。 GRANT USAGE ON u505743489_db.* TO 'u505743489_db'@'mobile-130-126-255-40.near.illinois.edu' IDENTIFIED BY 'password'. 在 phpMyAdmin 中,您可以在主选项卡或主数据库选项卡下授予权限(抱歉,我不记得了——但它就在那里)。 @BoristheSpider 这可以是一个答案。 @SotiriosDelimanolis 我在哪里可以打开命令行控制台? 【参考方案1】:

点击windows+r 然后在其中输入“cmd”并按回车键。这将打开 Windows 的命令提示符。

然后去.. mysql -u 用户名 -p press_enter_key

然后输入密码

line-1 : mysql -u root -h localhost -p

第 2 行:管理员

“admin”是您的密码。

那么..

mysql> 将 databasename.* 上的所有权限授予由“密码”标识的 cmsuser@localhost;

【讨论】:

以上是关于JDBC:连接到远程 mySQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用SSL JDBC连接到MySQL服务器

如何使用 Java 连接到远程 MySQL 数据库?

从 MySQL 连接到远程数据库 - 可能吗?

使用 Java 通过 SSH 连接到远程 MySQL 数据库

如何从 Android 应用程序通过 JDBC 连接到远程 MySQL 服务器

无法使用 JDBC 连接到远程 oracle 数据库