리눅스 민트 20(우분투 20).
MariaDB 버전: "mariadb 버전 15.1 Debian-linux-gnu(x86_64)용 Distrib 10.7.3-MariaDB, readline 5.2 사용"
ODBC를 사용하여 LibreOffice Base를 프런트 엔드로 실행하고 싶습니다.
MariaDB 지침을 따라해 보았습니다.여기.
libmaodbc.so 파일을 /usr/lib64/에 배치했습니다. 나는 이것이 주요 커넥터 파일이라고 생각합니다.
다음과 같이 /etc/odbcinst.ini 파일을 만들었습니다.
[MariaDB]
Description=MariaDB Connector/ODBC v.3.0
Driver=/usr/lib64/libmaodbc.so
UsageCount=1
그리고 /etc/odbc.ini 파일은 다음과 같습니다:
[localdb]
Description = MariaDB connection to database
Driver = MariaDB
Database = localdb
Server = localhost
User = root
Password = root
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
LO Base를 사용하여 연결하려고 하면 ODBC 항목 "localdb"가 표시됩니다. 그러나 연결을 테스트하면 다음과 같은 결과가 나타납니다.
"[unixODBC][Driver Manager]Data source name not found, and no default driver specified"
"데이터 소스 이름"? "기본 드라이버"?
내가 무엇을 해야 하는지 아는 사람 있나요? 내 이론은 odbc.ini 파일이 odbcinst.ini 파일을 참조하여 libmaodbc.so 파일을 구동한다는 것입니다.
실제로 연결을 설정하려고 하면, 즉 LO Base 데이터베이스의 테이블 목록을 가져오려고 하면 다음과 같은 결과가 나타납니다.
"데이터 소스 'xxx'*에 대한 연결을 설정할 수 없습니다.
[ma-3.1.15] '/var/run/mysqld/mysqld.sock' 소켓을 통해 로컬 서버에 연결할 수 없습니다(13)"
* 즉, LO 기본 파일 이름에서 ".odb" 확장자를 뺀 것입니다.
내 소켓도 확인하세요(MariaDB 서비스가 실행 중임).
mike@M17A:~/MariaDB_files$ netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 263752 /var/run/mysqld/mysqld.sock
...흥미롭습니다: 소켓이 살아 있고 건강하다는 것을 나타내는 것 같습니다.
그리고 나할 수 있는CLI를 사용하여 연결 isql localdb
: 모든 것이 올바르게 설정되었음을 의미합니까?
답변1
라이브러리가 lib64에 있어서 64비트 버전이라고 짐작할 수 있는데 32비트로 정의되어 있습니다.
폴더를 확인하면 /usr/lib/
libmaodbc.so 파일도 있어야 하는데 32비트 버전입니다.
그런 다음 드라이버 정의를 다음과 같이 수정합니다.
[MariaDB]
Description=MariaDB Connector/ODBC v.3.0
Driver=/usr/lib/libmaodbc.so
Driver64=/usr/lib64/libmaodbc.so
UsageCount=1