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