драйвера MySQL для базы данных в Qt Федора


Я понимаю, что это 100-й раз, когда кто-то спрашивает об этом, но я все еще не могу заставить QMYSQL работать. Поэтому я установил qt-mysql, но у меня все еще есть

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE

Я скопировал /usr/lib64/qt4/plugins/sqldrivers/libqsqlmysql.so в /usr/lib64/qt5/plugins/sqldrivers/libqsqlmysql.so, но никаких изменений ...

Я также добавил QT += sql в файл .pro.

Так что же мне делать ?

P.S.: Я на Fedora 21 и использую QtCreator 3.3.2, основанный на Qt 5.4.1.

P. P. S: Я также проверил, есть ли у .so проблема зависимостей, но ее нет :

$ ldd libqsqlmysql.so 
linux-vdso.so.1 =>  (0x00007fff665d1000)
libmysqlclient.so.18 => /usr/lib64/mysql/libmysqlclient.so.18 (0x00007fcb07294000)
libQtSql.so.4 => /lib64/libQtSql.so.4 (0x00007fcb07052000)
libQtCore.so.4 => /lib64/libQtCore.so.4 (0x00007fcb06b63000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcb06947000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fcb06638000)
libm.so.6 => /lib64/libm.so.6 (0x00007fcb0632f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcb06118000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcb05d5b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcb05b56000)
libz.so.1 => /lib64/libz.so.1 (0x00007fcb05940000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007fcb0573e000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fcb05404000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcb051fc000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcb07aa6000)
3 2

3 ответа:

Вы не можете просто скопировать драйвер Qt4 MYSQL в Qt5. Установите его с того же места, где вы установили остальную часть Qt5. (Пакет qt5-qtbase-mysql возможно: https://apps.fedoraproject.org/packages/qt5-qtbase-mysql ).

Вы должны построить драйвер mysql вручную. Единственным драйвером, который поставляется с установкой Qt по умолчанию, является драйвер Sqlite.

Следуйте инструкциям в http://doc.qt.io/qt-5.4/sql-driver.html#qmysql

  1. установитьmySQL connector .
  2. Следуйте инструкциям здесь

Libmysql.dll должна быть расположена где-то, где ее можно найти с помощью приложения. Чтобы это произошло, вы можете перечислить его в своем глобальном пути в Панели Управления / System / Advanced System Settings / Environment variables или поместить libmysql.dll находится в той же папке, что и Qt DLL в вашем каталоге/bin.