我试图通过一个简单的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
您似乎试图使用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