java - 在 Linux (Mageia) 上的 NetBeans 中从 Java 应用程序连接到 MariaDB

标签 java mysql netbeans jdbc mariadb

我正在尝试通过一个简单的 Java 应用程序连接到 Mariadb 中的数据库,但被告知连接不成功并抛出异常。我已经使用 mysql 完成了类似的连接并且它工作正常。问题可能出在此处的驱动程序上。

 try{
          Class.forName("org.mariadb.jdbc.Driver");  

        Connection connection = DriverManager.getConnection(  
                "jdbc:mariadb://localhost:3306/project", "root", "");  
        Statement statement = connection.createStatement(); 

        String uname="xyz",pass="abc";
       statement.executeUpdate("insert into user values('"+uname+"','"+pass+"')");}//end of try block

我在网上查找帮助,发现 MariaDB 客户端库为 Java 应用程序提供的驱动程序类不是 com.mysql.jdbc.Driver,而是 org.mariadb.jdbc.Driver!我相应地更改了它,但问题似乎出在 try block 内的第一行。驱动程序根本没有加载。 此外,我已将 mysql jar 文件添加到我的 java 应用程序的库中,如下面的屏幕截图所示。请帮我解决这个问题。 enter image description here

最佳答案

您似乎正在尝试使用 jdbc:mariadb://... 通过 MySQL JDBC 驱动程序建立与 MariaDB 服务器实例的连接。这可能行不通,因为 MySQL JDBC 驱动程序将使用 jdbc:mysql://...,无论它是连接到 MySQL 服务器还是 MariaDB 服务器。也就是说,连接字符串必须匹配正在使用的驱动程序(而不是正在访问的数据库服务器)。

MySQL 和 MariaDB 驱动程序应该可以互换,但在访问 MariaDB 服务器时使用 MariaDB 连接器似乎是明智的。对于它的值(value),mariadb-java-client-1.1.7.jar

的组合

projectProperties.png

Connection con = DriverManager.getConnection(
        "jdbc:mariadb://localhost/project", 
        "root", 
        "whatever");

为我工作。我从这里下载了适用于 Java 的 MariaDB 客户端库:

https://downloads.mariadb.org/client-java/1.1.7/

我是通过

https://downloads.mariadb.org/

补充说明:

  1. Java 代码中不需要 Class.forName() 语句。

  2. Mageia 下 MariaDB 的默认配置可能包括 /etc/my.cnf 中的 skip-networking 指令。如果您想通过 JDBC 连接到数据库,则需要删除(或注释掉)该指令,因为 JDBC 连接总是看起来像与 MySQL/MariaDB 的“网络”连接,即使它们是来自 localhost 的连接>。 (您可能还需要将 bind-address 值调整为 0.0.0.0 之类的值。)

关于java - 在 Linux (Mageia) 上的 NetBeans 中从 Java 应用程序连接到 MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23020857/

相关文章:

java - 执行显示控制台窗口的命令并获取进程的句柄

java - 如何模拟 jdbcTemplate.query(sqlQuery, new Object[] {id, name}, new Mapper())

mysql - 内连接内的内连接

php - NetBeans 将字符替换为行尾的正则表达式

objective-c - NetBeans 可以用来编写 Objective-C 程序吗?

java - Netbeans 找不到 java.io.InputStream

java - 使用 pack() 将 JFrame 缩放到适当大小时出现问题

javascript - 使用JS调用servlet安全吗?

mysql - 连接被数据库丢弃

java - 如何使用网站的数据库连接到服务器,使用 GET 更安全