Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QSqlDatabase: QMYSQL driver not loaded
-
Здравствуйте.
Возникает ошибкаQSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins bd open error! Для продолжения нажмите любую клавишу . . .
В интернете множество решений, но все они уже устарели, т.к. давно обновились версии ПО, пропали папки и программы на которые ссылаются инструкции. Прошу помощи в решении проблемы. Как собрать библиотеку?
Windows 10 x64 + QT 5.11.1 x86 + mysql community 8.0.11.0 x64p.s.QT 5.11.1 на сайте доступна только x86,
а для mysql только общий установщик на сайте x86 для 32 и 64 битных систем. ПО факту сервер лежит в папке Program Files, т.е. 64бит.Делаю по аналогии с инструкцией от сюда https://www.seppemagiels.com/blog/create-mysql-driver-qt5-windows
Возникает эта ошибка. Помогите.Setting up environment for Qt usage... C:\Qt\Qt5.11.1\5.11.1\mingw53_32>set mysql = C:\PROGRA~1\MySQL\MYSQLS~1.0 C:\Qt\Qt5.11.1\5.11.1\mingw53_32>cd C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\src\plugins\sqldrivers\mysql C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%\\include" "LIBS+=%mysql%\\lib\\libmysql.lib" -o Makefile mysql.pro Info: creating stash file C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\src\plugins\sqldrivers\.qmake.stash Cannot read C:/Qt/Qt5.11.1/5.11.1/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: No such file or directory Project ERROR: Library 'mysql' is not defined. C:\Qt\Qt5.11.1\5.11.1\Src\qtbase\src\plugins\sqldrivers\mysql>
Код:
QT -= gui QT += sql CONFIG += c++11 console CONFIG -= app_bundle DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -llibmysql else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -llibmysqld else:unix: LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -llibmysql INCLUDEPATH += $$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/include' DEPENDPATH += $$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/include' win32:CONFIG(release, debug|release): LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -lmysqlclient else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -lmysqlclientd else:unix: LIBS += -L$$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/lib/' -lmysqlclient INCLUDEPATH += $$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/include' DEPENDPATH += $$PWD/'../../../../Program Files/MySQL/MySQL Server 8.0/include'
#include <QCoreApplication> #include <iostream> #include <cstdlib> // для system #include <cstring> #include <QSqlDatabase> using namespace std; int main(int argc, char *argv[]) { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mydb"); db.setHostName("localhost"); db.setDatabaseName("pma"); db.setUserName("root"); db.setPassword("1234"); bool ok = db.open(); if (ok) cout << "bd open" << endl; else cout << "bd open error!" << endl; system("pause"); return 0; }
-
Не хотите разметку в посте поправить, чтобы было понятнее где что?
Делаю по аналогии с инструкцией от___сюда http://какойтолевыйисточ.ник
Как насчёт официальной документации?
-
@veryqtperson к сожалению не нахожу кнопки, чтобы отредактировать тему. Первая тема на форуме. Прошу простить, не увидел сразу тега для кода. У меня отсутствует папка C:/MYSQL/MySQL Server <version>/lib/opt. В установщике также отсутствует
"Libs & Include Files". Привёл скрины ниже. Подскажите пожалуйста как быть?How to Build the QMYSQL Plugin on Windows You need to get the MySQL installation files. Run SETUP.EXE and choose "Custom Install". Install the "Libs & Include Files" Module. Build the plugin as follows (here it is assumed that MySQL is installed in C:\MySQL): cd %QTDIR%\qtbase\src\plugins\sqldrivers qmake -- MYSQL_INCDIR=C:/MySQL/include "MYSQL_LIBDIR=C:/MYSQL/MySQL Server <version>/lib/opt" nmake sub-mysql If you are not using a Microsoft compiler, replace nmake with mingw32-make in the line above.
-
к сожалению не нахожу кнопки, чтобы отредактировать тему. Первая тема на форуме.
Ну тогда ладно :)
У меня отсутствует папка C:/MYSQL/MySQL Server <version>/lib/opt. В установщике также отсутствует
Вы не там смотрите, установщик MySQL изменился, и теперь эти компоненты должны быть в ветке
Connector/C++
. Так что официальная документация сплоховала, хе-хе.Я сейчас сам не могу проверить, к сожалению, потому что нету Windows машины под рукой. Если к концу недели не разберётесь, то я к тому времени как разу буду с Windows и смогу посмотреть в чём там дело.