MariaDBではODBCを使用できません。

MariaDBではODBCを使用できません。

Linux Mint 20(Ubuntu 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

関連情報