Если при попытке использовать MySQL, ваше приложение выдает ошибку «mysql driver not loaded», то чаще всего это может быть по следующим причинам: вы забыли подключить SQL модуль в файле проекта, либо вы еще не настроили у себя поддержку этих драйверов. Так как изначально Qt идет без поддержки драйверов MySQL, то эти драйвера надо собирать самим. К счастью это не составит большого труда, расмотрим весь процесс по пунктам.
1. Скачиваем и устанавливаем Qt SDK. При установке обязательно выбираем пункт установить Qt Sources.
2. Скачиваем и устанавливаем MySQL. Все устанавливать не обязательно, но главное отметить к установке пункт «Client C API Library».
3. Далее: Меню «Пуск» -> «Все программы» -> «Qt SDK» -> «Desktop» -> «Qt 4.8.1 for Desktop (MingW)».
4. В открившейся консоли выполняем такие команды(предварительно отредактируйте пути на свой лад):
set mysql=C:\PROGRA~1\MySQL\MYSQLS~1.0\ cd C:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\ qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\opt\libmysql.lib" -o Makefile mysql.pro mingw32-make qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\opt\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release" mingw32-make
Проверьте чтобы все команды выполнились без ошибок.
Внимание! Если у вас MySQL установлен в похожую папку на мою:
C:\Program Files\MySQL\MySQL Server 5.0\
то вам необходимо привести путь в такой вид:
C:\PROGRA~1\MySQL\MYSQLS~1.0\
Если испытываете затруднения с таким переводом, то путь можно посмотреть через Volkov Commander.
5. По итогам выполнения, вы найдете две новые директории: debag и release, созданные в текущей папке. В папке debag вы найдете файлы libqsqlmysqld4.a и qsqlmysqld4.dll, в то время как в папке release вы найдете libqsqlmysql4.a и qsqlmysql4.dll. Скопируйте эти файлы в папку:
C:\QtSDK\Desktop\Qt\4.8.1\mingw\plugins\sqldrivers\
6. Скопируйте libmysql.dll из папки MySQL в папку:
C:\WINDOWS\
7. Чтобы протестить, создайте новый проект с таким кодом:
#include <QApplication> #include <QtSql> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << QSqlDatabase::drivers(); return a.exec(); }
Проверьте что в файле проекта(*.pro) добавлен SQL модуль:
QT += sql
Если все успешно, то в результате исполнения кода, в списке поддерживаемых драйверов:
("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")
будет присутствовать QMYSQL.
Проверено на: MySQL Server 5.0, Qt 4.8.1, Windows XP.