Linux Mint 20(Ubuntu 20)。
MariaDB 版本:“mariadb Ver 15.1 Distrib 10.7.3-MariaDB,适用于 debian-linux-gnu (x86_64),使用 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