Matlab에서 Mariadb 데이터베이스에 액세스하기 위한 JDBC 드라이버 설치
Synology NAS에서 Matlab에서 액세스하고 싶은 Mariadb 데이터베이스가 Mac에 설치되어 있습니다.
다음은 제가 수행한 단계입니다.
- MariaDB Connector/J 2.3.0 mariadb-java-client-2.3.0.jar 다운로드
- /Library 폴더에 MyDrivers 폴더를 생성하여 드라이버를 이동.
- 위의 폴더를 PATH 변수에 추가했습니다.
- CLASSPATH 변수에 드라이버의 전체 경로를 추가했습니다.
- Matlab의 튜토리얼에 따라 matlab prefdir 폴더에 저장된 javaclasspath.txt 파일을 만들었습니다.
/Users/cedric/Library/Application Support/MathWorks/MATLAB/R2018a/javaclasspath.txt
javaclasspath.txt 파일의 내용은 다음과 같습니다./Library/MyDrivers/mariadb-java-client-2.3.0.jar
Matlab에서 데이터 소스를 구성하려고 하면 "Unable to find jdbc driver on Matlab Java class path"라는 오류 메시지가 나타납니다.포인트 3, 4, 5는 올바르게 완료되었다고 생각합니다(아래의 cf 출력).
드라이버의 .jar 파일의 복사/붙여넣기에 관한 질문입니다.관련 폴더에 넣는 것 외에 제가 해야 할 일이 있나요?
나는 그것을 실행하려고 노력했다.java -jar /Library/MyDrivers/mariadb-java-client-2.3.0.jar
를 누릅니다.이 기능은 다음과 같습니다.no main manifest attribute, in /Library/MyDrivers/mariadb-java-client-2.3.0.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`
정확히 뭘 해야 할지 힌트라도 있나요?지금까지 연구한 팁이 부족해서...
단말기의 env 출력
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의 javaclasspath('all') 출력
Matlab이 마지막으로 반환하는 파일은 다음 드라이버 중 하나입니다./Library/MyDrivers/mariadb-java-client-2.3.0.jar
시스템 사양:
Mac OS HighSierra 10.13.4
매트랩 R2018a
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 커넥터/J 2.3.0
mariadb jar를 실행하려고 하면 문제가 없다는 것을 알 수 있습니다.java는 이 jar(드라이버 클래스도 포함)를 어플리케이션의 엔트리 포인트로 취급할 수 있다고 (정확하게) 알려줍니다.
lib를 PATH에 추가해도 아무것도 하지 않습니다.
CLASSPATH에 lib를 추가하는 것은 권장되지 않지만 도움이 될 수 있습니다.명시적인 클래스 패스가 제공되지 않을 경우 Java VM이 사용하는 클래스 패스를 정의합니다.모든 복잡한 자바 앱과 마찬가지로 Matlab은 확실히 독자적인 클래스 패스를 가지고 있다.개인적으로 matlab이 어떻게 작동하는지 잘 모르지만 matlab이 CLASSPATH 변수를 완전히 무시할 확률은 99%라고 생각합니다.
이 일이 classpath.txt
무시되는 것 같은 파일입니다.matlab에서 classpath를 설정하는 방법은 아닌 것 같습니다.https://www.mathworks.com/help/matlab/ref/javaclasspath.html 에 있는 메뉴얼을 참조해 주세요.적어도 matlab에 클래스 패스가 무엇이라고 생각하는지 물어 볼 수 있습니다.
가장 해결하기 어려운 문제는 존재하지 않는 문제인데...드라이버가 잘 설치되어 있는 것을 확인한 rzwitserloot 덕분에, 나는 차근차근 가기로 결심했다.먼저 몇 가지 데이터베이스 연결 설정(포트 및 IP)을 조정한 후 실제로 정상으로 판명된 드라이버를 테스트하기 위한 작은 Java 프로그램을 셋업합니다.그리고 MATLAB에서 드라이버를 찾을 수 없음에도 불구하고 matlab에서도 같은 작업을 했습니다(인터페이스를 사용하지 않고 코드화).사실 이것도 잘 작동했어요.그 후, 「드라이버를 찾을 수 없습니다」라고 하는 메세지가 표시되었지만, 데이타베이스 인터페이스를 개입시켜 접속을 시도했습니다.접속에 성공하여 "Unable to find driver" (드라이버를 찾을 수 없습니다) 메시지가 사라졌습니다.
언급URL : https://stackoverflow.com/questions/52239988/installation-of-jdbc-driver-to-access-mariadb-database-from-matlab
'programing' 카테고리의 다른 글
Java 1.8.0_60, MariaDB v10.0 및 mariadb-java-client 1.2.2, "적절한 드라이버를 찾을 수 없습니다" (0) | 2022.11.07 |
---|---|
MySQL 위에 MariaDB 5.5 설치 (0) | 2022.11.07 |
stdout을 Python의 파일로 리디렉션하시겠습니까? (0) | 2022.11.06 |
"표 표시" MySQL 쿼리에서 데이터 선택 (0) | 2022.11.06 |
.readlines() 사용 시 \n 삭제 (0) | 2022.11.06 |