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

安装JDBC驱动程序从Matlab访问Mariadb数据库

仇正平
2023-03-14

我有一个在Synology NAS上运行的Mariadb数据库,我想从安装在Mac上的Matlab访问它。

以下是我所遵循的步骤:

  1. 下载了MariaDB连接器/J 2.3.0 mariadb-java-client-2.3.0.jar
  2. 在/library文件夹中创建了一个MyDrivers文件夹,并将驱动程序移动到那里
  3. 将上述文件夹添加到路径变量
  4. 将驱动程序的完整路径添加到CLASSPATH变量
  5. 根据Matlab的教程,创建了一个javaclasspath.txt文件,该文件保存在Matlab prefdir文件夹(/users/cedric/library/application support/mathworks/Matlab/r2018a/javaclasspath.txt)中。javaclasspath.txt文件的内容是/library/mydrivers/mariadb-java-client-2.3.0.jar

当我尝试在Matlab中配置数据源时,我得到一条错误消息“无法在Matlab Java类路径上找到jdbc驱动程序”。我相信第3、4和5点做得恰到好处(下面cf输出)。

所以我的问题是围绕驱动程序的.jar文件的复制/粘贴。除了把它放入相关文件夹之外,还有什么我需要做的吗?

我尝试在终端中使用java-jar/library/mydrivers/mariadb-java-client-2.3.0.jar执行它。这提供了:在/library/mydrivers/mariadb-java-client-2.3.0.jar中没有主清单属性

我认为它可能不是一个可执行的jar,所以尝试了java-cp/library/mydrivers/mariadb-java-client-2.3.0.jar org.mariadb.jdbc.driver;

这返回

Error: Main method not found in class org.mariadb.jdbc.Driver, please define the main method as: public static void main(String[] args)
or a JavaFX application class must extend     javafx.application.Application`

有没有具体该怎么做的暗示?目前为止,我做的研究已经没有什么提示了...

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/48/d95l77ys4hv4xbfgtsh0rh1w0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.l8pI2zNcXw/Render
TERM_PROGRAM_VERSION=404
OLDPWD=/Users/cedric/.Trash/mariadb-java-client-2.2.6-sources 23.44.30/org/mariadb
TERM_SESSION_ID=396C6E65-006B-4BAF-B137-A270A36E397F
USER=cedric
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.QZhGI9ZjXf/Listeners
PATH=/Library/MyDrivers/mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar:/Library/MyDrivers:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
PWD=/
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/cedric
LOGNAME=cedric
CLASSPATH=.:/Library/MyDrivers/mariadb-java-client-2.3.0.jar:
LC_CTYPE=UTF-8
SECURITYSESSIONID=186a8
_=/usr/bin/env

Matlab返回的最后一个文件是驱动程序的文件:/library/mydrivers/mariadb-java-client-2.3.0.jar

Java -version: 
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

驱动程序Jdbc MariaDB Connector/J 2.3.0

共有1个答案

叶桐
2023-03-14

运行mariadb jar的尝试表明它是正常的。java(正确地)告诉您这个jar(也不是Driver类)可以被当作应用程序入口点。

将lib添加到PATH中不起作用。

不建议将lib添加到CLASSPATH,但会有所帮助;它所做的唯一事情是定义java VM在没有提供显式类路径时将使用的类路径。Matlab就像几乎所有复杂的java应用程序一样,绝对有自己的类路径。我个人并不熟悉matlab是如何操作的,但我认为matlab完全忽略CLASSPATH变量的可能性为99%。

这就留下了这个classpath.txt文件,它似乎被忽略了。我不认为这是在MATLAB中配置类路径的方法。https://www.mathworks.com/help/matlab/ref/javaclasspath.html上的文档可以帮助您解决问题。至少,您可以询问matlab它认为类路径是什么。

 类似资料:
  • 问题内容: 我很难确定应该如何在我的debian 6.0服务器上为PostgreSQL安装JDBC驱动程序。我已将驱动程序.jar移至以下目录: 然后,教程讨论如何使用此代码: 但是,由于我是PostgreSQL的新手,所以我不知道应该把这行放在哪里,或者这是否正确。 我的问题是,除了将jar文件移动到此位置之外,为了在我的postgreSQL安装上安装JDBC驱动程序,我实际上需要做什么? 编辑

  • 我已经从http://dev.MySQL.com/downloads/connector/j/下载了MySQL“mysql-connector-java-gpl-5.1.26.msi”的JDBC驱动程序。但我想不出怎么用。http://dev.mysql.com/doc/refman/5.6/en/connector-j-binary-installation.html上的文档说明它是一个zip文

  • 在Eclipse BIRT数据资源管理器中为查询生成器添加JDBC数据库连接: 选择“查询生成器的JDBC数据库连接” 就这样。我可以使用此数据源来使用数据集。 下一个。 我希望使用更灵活的“JDBC数据源”,而不是以前成功使用的“查询生成器的JDBC数据库连接”。哦,我看到MySQL没有驱动程序类-Derby和Sample只有两个默认条目。 似乎JDBC驱动程序的有效注册没有添加(或注册?)司机

  • 问题内容: 我正在用Java编写数据库验证工具,并具有首选项屏幕,以便用户可以定义其数据库连接。该工具至少应能够应付DB2,Oracle,Postgresql和Mysql。 我真正想要的是能够向用户提供他们已安装的jdbc驱动程序列表,作为此过程的一部分。 任何人都可以提供用于发现已安装的JDBC驱动程序的代码段吗? 问题答案: 到目前为止,您需要扫描整个类路径(和子文件夹)以查找实现类的类。这样

  • 我尝试将Oracle JDBC驱动程序安装到Apache Geronimo,但没有成功。我正在使用ojdbc6。罐子 我将其复制到repository文件夹,并尝试先使用Geronimo的管理控制台设置Oracle XA池,但没有成功。它抱怨OracleDataSource的ClassNotFoundException缺少驱动程序。 然后,我尝试设置一个常规的Jdbc驱动程序(oracle瘦)。我

  • 从MATLAB R2017a Windows-7连接数据库的尝试失败。 错误消息:找不到JDBC驱动程序 JDBC驱动程序是: null null 尝试这些JDBC驱动程序的尝试都没有成功,因为在javaclass路径中单独测试了每个文件: C:\drivers\mysql-connector-java-6.0.6\mysql-connector-java-6.0.6-bin.jar C:\dri