当前位置: 首页 > 知识库问答 >
问题:

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

左丘弘致
2023-03-14

我试图通过一个简单的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

共有1个答案

任飞龙
2023-03-14

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

MySQL和MariaDB驱动程序应该在某种程度上可以互换,但在访问MariaDB服务器时使用MariaDB连接器似乎是谨慎的做法。值得的是,mariadb-java-client-1.1.7.jar

而且

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

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

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

我是通过

附加说明:

>

  • 在Java代码中不需要class.forName()语句。

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

  •  类似资料:
    • 免责声明:我知道人们通常不会这样做,我使用SQL数据库是出于成本原因,而且我对编程比较陌生。 我正在尝试从我的Android Studio应用程序向我的MariaDB数据库发送SQL脚本。我目前正在为MariaDB实现一个Java数据库连接(JDBC)驱动程序,但我不确定需要包括什么。 我去了JDBC MariaDB驱动程序的下载网站,但是有很多jar文件,我可以选择下载。你怎么知道你需要哪一个,

    • 我在将Netbeans中的Java与localhost中的mariadb连接时遇到问题。我已经看到一些类似的帖子,从Linux上NetBeans的Java应用程序连接到MariaDB(Mageia)但不起作用,这是非常相似的,所以我不知道为什么这个帖子不能帮助我。 我在/etc/my.cnf中选中了skip-networking指令,但它已经被注释了。

    • null 错误:SQL异常:java.SQL.sqlexception:找不到适合JDBC的驱动程序:mariadb://localhost:3306/customer构建成功(总时间:3秒)

    • 我知道这已经问了很多,但在尝试了很多解决方案后,我仍然无法连接到我的数据库。 我正在PC上工作,我想连接到我局域网中另一台机器上的mariadb mysql服务器。但我想这样做,我的程序可以从任何地方连接到我的mysql服务器。不只是从mysql所在的机器或局域网中的PC。 我以为使用我的外部IP和转发路由器上的mysql端口将会起作用,但我得到了‘通信失败’错误。 到目前为止我确定: -用户、密

    • 我有一个问题,我的应用程序,当尝试从php应用程序在cli数据库连接我收到这个错误: 错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld”连接到本地MySQL服务器。袜子(111) 当我运行网站时,我得到: [2002]连接拒绝(SQL:从中选择*,其中=TKks6w5zbHk8bZsm6BEgFyKLJGXj05eyYHQfJsaB限制1) 我用docker