无法将 Java ap 连接到在线 MySQL 数据库 - 错误的 URL

Posted

技术标签:

【中文标题】无法将 Java ap 连接到在线 MySQL 数据库 - 错误的 URL【英文标题】:Cannot connect Java ap to online MySQL database - wrong URL 【发布时间】:2017-01-20 08:45:46 【问题描述】:

我开发了一个 Java 应用程序,并希望将其连接到由db4free.net 托管的在线 mysql 数据库。但我无法通过 JDBC 建立连接,而且我知道我使用的 URL 有问题。我在浏览器中看到的 URL 是:

https://db4free.net/phpMyAdmin/index.php?db=DB_NAME&target=db_structure.php&token=8d68285c6950611a4f9630dc2c132b61

这就是我阅读属性的方式:

public class ReadProperties 
    private String db_user;
    private String db_password;
    private String db_connection;
    private Connection connection;

    public ReadProperties(String filename)
        Properties propfile = new Properties();
        InputStream input = null;
        try 
            input = new FileInputStream(filename);
            propfile.load(input);

            db_user = propfile.getProperty("db_user");
            db_password = propfile.getProperty("db_password");
            db_connection = propfile.getProperty("db_connection");

            connection = DriverManager.getConnection( db_connection, db_user, db_password);
            System.out.println(connection);

         catch (IOException | SQLException ex) 
            ex.printStackTrace();
         
        finally 
            if (input != null) 
                try 
                    input.close();
                 catch (IOException e) 
                    e.printStackTrace();
                
            
        
    

还有我的属性文件:

db_user=USERNAME
db_password=PASSWORD
db_driver=com.mysql.jdbc.Driver
db_connection=jdbc:mysql://db4free.net/DB_NAME

我到底应该使用什么 URL? 这是我在 phpMyAdmin 中看到的(我已经删除了数据库的名称):

【问题讨论】:

你ping过你的数据库了吗? 能不能把域名改成真实的@IP @LAIDANIYoucef 我ping了域名,它的IP是85.10.205.173 也许你应该问db4free.net如何访问数据库。 【参考方案1】: 首先你应该得到你的IP地址和端口 数据库: 第二次 ping 您的数据库,如果它可以正常工作,那么一切都会好起来的,如下所示:

MySQL 的默认端口为 3306,因此您的 URL 或 db_connection 应如下所示:

将您的网址更改为:

db_connection=jdbc:mysql://85.10.205.173/DB_NAME
请务必致电Class.forName(driver);

编辑

我已经在这个网站上创建了一个数据库,我创建了一个简单的程序,它可以和我一起工作:

import java.sql.DriverManager;
import java.sql.SQLException;

public class CreerConnection 

    static String driver = "com.mysql.jdbc.Driver";
    static String DB_username = "youcef";
    static String DB_password = "youcef";
    static String DB_URL = "jdbc:mysql://85.10.205.173/bd_test";

    public static void main(String[] args) 
        try 
            Class.forName(driver);
            java.sql.Connection con = DriverManager.getConnection(DB_URL, DB_username, DB_password);
            System.out.println("Success");
         catch (ClassNotFoundException | SQLException e) 
            System.out.println("Exception : " + e);
        
    

您可以使用我的数据,希望对您有所帮助。

【讨论】:

为什么它对我有用?尝试使用这个@IP,我已经在我的电脑中获得了它 @Marievi 我为你创建了一个简单的程序,它对我来说很好用 @Marievi 我想你忘了Driver class 只是复制通过了我的程序并测试它 你不需要指定默认端口(3306),见github.com/mysql/mysql-connector-j/blob/release/5.1/src/com/… 是的,你是真的@rkosegi,但程序运行良好,为什么要投反对票?【参考方案2】:

数据库正在侦听特定端口,您必须指定它,它应该是 3306(正如我在屏幕截图底部看到的那样)。

您的数据库连接属性应该是:

db_connection=jdbc:mysql://db4free.net:3306/DB_NAME

【讨论】:

phpMyAdmin 和链接的其余部分怎么样? 你不需要指定默认端口(3306),见github.com/mysql/mysql-connector-j/blob/release/5.1/src/com/…

以上是关于无法将 Java ap 连接到在线 MySQL 数据库 - 错误的 URL的主要内容,如果未能解决你的问题,请参考以下文章

Java - 使用 JDBC 连接到在线 MySQL 数据库时出现问题

为啥我可以将 java 应用程序连接到 MySQL DB 但无法执行查询? [复制]

后端容器 ip 无法使用 docker 连接到数据库 mysql

如何使用 ODBC 将 Excel 连接到我的域中的在线 Mysql 数据库?

使用 PHP 从 Swift 连接到在线数据库 (mySQL)。 (XCODE)

如何将 MySQL 连接到 Java 程序