mysql - QT 5.3.2 linux libmysqlclient

原文 mysql linux qt mysql-connector

私のkali linux(debianベース)にQt 5.3.2 64ビットをインストールしましたが、MySQLデータベースへの接続に問題が発生します。

まず、何らかの理由で、ビルド済みのqsqlmysql qtドライバーは、デフォルトでこのディストリビューションに付属するlibmysqlclient18(libmysqlclient.so.18)ではなく、libmysqlclient16(lddはlibmysqlclient_r.so.16が見つからないと言っています)に依存しています!シンボリックリンクを作成してlibmysqlclient_r.so.16という名前を付けても機能しません。
そこで、debian(squeeze iirc)用のlibmysqlclient16を探してインストールしました!

ruido@Developer2:~$ ldd /opt/Qt5.3.2/5.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so 
linux-vdso.so.1 =>  (0x00007fff4a9ce000)
libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x00007ffb99a3d000)
libQt5Sql.so.5 => /opt/Qt5.3.2/5.3/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007ffb997fc000)
(...)


それは機能しますが、大きな問題があります...おそらく時代遅れであり、> 5.6 mysqlサーバーに接続するためにそれを使用して、日時にミリ秒を使用できるようにする必要があります(mysql 5.6.4以降)。
libmysqlclientはそれをサポートしていないようで、DBからフェッチするすべてのタイムスタンプにはゼロで満たされたミリ秒が付いています。

だから問題は:
代わりにqsqlmysqlでlibmysqlclient18を探す方法はありますか?
(私は通常のdebian wheezyで試したので、そこにはlibmysqlclient18がないように見えます)
答え
現在のプラットフォーム用のmysqlプラグインを再構築するだけです。 $QTDIR/src/plugins/sqldrivers/mysql/ run:qmake "LIBS+=-L/usr/lib/ -lmysql" "INCLUDEPATH+=/usr/include/" mysql.pro && makeに移動して問題ないはずです。これにより、システムにある最新のmysql-libraryを使用して、Qtのmysql-pluginが構築されます。インストールされているシステムに対応するLIBS / INCLUDEPATHを変更する必要がある場合があります。
–セバスチャンランゲ

私はそれを避けようとしていました(私は非常に怠惰なため)まあ... mysqlに関連するすべてのmysqlを更新した後、新しいプラグインの作成中に-lmysqlclient_rのようなものが見つからない理由を理解した後、それは機能しました結構です;)…
– RuiDo
関連記事

java - MySQL Javaドライバー:行は挿入されませんが、エラーは表示されません

mysql - 日付の一時テーブルを作成すると、不思議なことにデータが一時テーブルに繰り返し「追加」されますか?

mysql - デプロイ後にRails 4がmysqlに接続できない

php - MySQLクエリ中の時間差を計算する

php - MySQLサブクエリエラー:SQLSTATE [42S21]:

mysql - データベース階層構造-異なるノード表現

mysql - スケジュールに基づいてデータを取得する

php - 別のフィールドに基づいてフィールドの出現回数をカウントする

mysql - SQL-AND演算子を使用して複数のWHERE値を照会する方法

mysql - 自動インクリメントのMySQL更新コマンド[重複]