Не удалось подключиться к базе данных проверьте настройки бд driver not loaded
Среда разработки этого проекта (решения):
(1) Операционная система: Windows10
(4) Версия QtCreator: 4.11.0
Проанализировать причину «QSqlDatabase: драйвер QMYSQL не загружен»
(1) Модуль Qt SQL использует подключаемый модуль драйвера для связи с различными API баз данных.
(2) Поддерживаются следующие базы данных:
Driver name | DBMS |
---|---|
QDB2 | IBM DB2 (version 7.1 and above) |
QIBASE | Borland InterBase |
QMYSQL | MySQL (version 5.0 and above) |
QOCI | Oracle Call Interface Driver |
QODBC | Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases |
QPSQL | PostgreSQL (versions 7.3 and above) |
QSQLITE2 | SQLite version 2Note: obsolete since Qt 5.14 |
QSQLITE | SQLite version 3 |
QTDS | Sybase Adaptive ServerNote: obsolete since Qt 4.7 |
Скомпилировать драйвер MySQL
(1) Скомпилируйте драйвер
Проверьте путь установки Qt на компьютере: E: \ ProgramData \ Qt \ Qt5.14.1 \ 5.14.1 \ mingw73_64 \ plugins \ sqldrivers подключаемый модуль sqldrivers, как показано ниже
[Не удалось передать изображение по внешней ссылке. На исходном сайте может быть механизм защиты от хотлинкинга. Рекомендуется сохранить изображение и загрузить его напрямую (img-j5HUM609-1583739250397) (C: \ Users \ AdminCode \ AppData \ Roaming \ Typora \ typora-user-images \ image-20200309150658854.jpg)]
Обнаружено, что нет подключаемого модуля драйвера, связанного с MySQL.
Исходная версия Qt5.13 не включает плагин драйвера для управления MySQL, поэтому вам нужно скомпилировать плагин самостоятельно. Процесс компиляции плагина выглядит следующим образом:
1. Используйте QtCreator, чтобы открыть проект mysql.pro E:\ProgramData\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
Откройте файл проекта (исходное содержимое) следующим образом.
Модификация элемента управления выглядит следующим образом
Дайте код, скопируйте и замените самостоятельно
Скомпилируйте программу после ее добавления (примечание: здесь используется бит MinGw64)
После успешной компиляции E:\ProgramData\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql Под каталогом будет дополнительный каталог lib
2. Скопируйте эти три файла в E:\ProgramData\Qt\Qt5.14.1\5.14.1\mingw73_64\plugins\sqldrivers в
(2) Добавить пакет расширения MySql
QODBC (MS SQL SERVER) . Driver not loaded Driver not loaded
Собрал себе драйвер QODBC. mingw x86. QSqlDatabase::drivers() возвращает (QSQLITE, QMYSQL.
Ошибка - Driver not loaded Driver not loaded
Собрал драйвер MySQL. Пытаюсь запустить простое приложение - подключиться к базе и выполнить sql -.
export QT_DEBUG_PLUGINS=1
и поспотрите вывод на предмет ошибок
Простите, а где это написать? В приложении? В командной строке?
/Qt/6.0.0/Src/qtbase/src/plugins/sqldrivers лежат исходники, получается что плагин надо скомпилировать вручную (почему это не работает из коробки?!).
Начал делать все согласно инструкции и получаю:
Ну это переменная окружения, а где писать- зависит откуда как вы запускаете собранную программу.
для сборки драйвера (хотя зачем? он у вас же установлен пакет libqt5sql5-psql) нужен, как минимум, libpq-dev, а, как максимум- ещё куча инструментов.
Во истину, век живи век учись. Я вначале подумал это макрос Qt.Запустил откомпилированное приложение из командной строки и получил огромный вывод:
Осталось понять как его анализировать.
Еще я попробовал найти файл qsqlresult_p.h и закинуть его в папку /home/anton/Qt/6.0.0/Src/qtbase/src/plugins/sqldrivers/psql Удивительно, но компиляция пошла, но опять повылезали ошибки, на сей раз ругается на код самих файлов (мол они реализованы криво)
Продолжение выводаНикогда не занимался таким анализом, что вообще искать ?
Ну из этого информационного мусора надо смотреть строки c "Driver not loaded" и разбирать, какой файл он не видит, например.
Интернеты утверждают, что на фразу "The shared library was not found." not a plugin - не стоит обращать внимания. Файлы упомянутые в этом отрывке, они все у меня есть, а само слово "file" не встречается не разу.
Эххх. вот чего ему надо.
Добавлено через 1 час 48 минут
Пипец, если проверить версию, то получу
при этом у меня есть альтернативная папка Qt /usr/include/x86_64-linux-gnu/qt5/QtSql/5.12.8/QtSql/private/
Похоже из неё и берутся библиотеки Qt. Зашибись, вот как её обновить ?
Добавлено через 3 часа 44 минуты
Если поиграться с разными версиями qmake компиляция все же начнется и. прервется.
Еще и исходники похоже корявые.
Откуда опять взялась версия 5.12.8 ? Я же явно указал и папку и qmake версии 5.15.2
Добавлено через 51 минуту
На стакоферфлове, мне подсказали где взять исходники и собрать плагин с нуля.
ubuntu amd64 плагин хранит по адресу /usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlpsql.so
Добавлено через 8 минут
Однако, у вас такая каша с версиями. Уточните, какая OS и как устанавливали Qt? Это ведь не windows какая нибудь, в линукс все что вы пытаетесь достичь (установка qt + плагин для postgresql) в 2 вызова пакетного менеджера делается.
Я тут выделил ключевое и верное в этой теме. Все остальное - это бесполезные попытки шаманизма. В программировании это всегда только вредит.
1) в Ubuntu НЕ надо ничего компилировать и устанавливать руками (признавайтесь, у вас каша с версиями, потому что вы что-то до этого настраивали вручную?).
2) Единственно верный способ - это поставить плагин Qt для PostgreSQL из репозитория. Если это не работает, то надо разбираться почему это не работает, а не пробовать методом тыка другие способы. Так вы сделаете только хуже.
Добавлено через 14 минут
По логам выше видно, что у вас ваши версии Qt какого-то рожна установлены в home каталог. И судя по всему собирались вручную? Зачем это? В этой самодеятельности и есть корень проблемы.
Версия Qt должна быть установлена штатным образом, через пакетный менеджер. Тогда и установка пакета libqt5sql5-psql поможет.
Кроме того, раз уж вы решили заняться компиляией, то версия исходников, которые вы используете, должна полностью совпадать с версией Qt, которая у вас установлена в системе. Нельзя просто взять Qt 6.0 и положить оттуда плагин в версию 5.
QSqlDatabase: QMYSQL driver not loaded
Скачал Qt 5.3.2. Не загружается драйвер QMYSQL хотя выводит: QSqlDatabase: available drivers.
QSqlDatabase: QMYSQL driver not loaded
Пытаюсь подключать в MySQL в Qt: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); .
electrobas94, добрый день. Проверьте переменную PATH, в ней должен быть путь до библиотек mysql
Добавлено через 45 секунд
Прошу прощенья. Не увидел что речь идет о Linux.
QPSQL driver not loaded
Здравствуйте, возникла проблема с подключением к Postgresql, подобная же проблема возникла с.
QSqlDatabase: QMYSQL driver not loaded
Да видел кучу других посотов об этом,даже наподобие, но тогда, когда у ТС все получалось, просто.
QSqlDatabase: QMYSQL driver not loaded
Пытаюсь подключать в MySQL в Qt: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); .
Вообще, такие темы уже были и не одна, воспользуйтесь поиском по форуму.
Slip., да, по Windows. Через PATH указал пути, положил все .dll файлы Postgress'a из bin и lib рядом с .exe. Но работать так и не захотел. Вычитал где-то про addLibraryPath(), но ей я ни разу не пользовался, даже не представляю как добавить. В принципе по форуму одно и тоже, добавить к exe библиотеки и прописать PATH.
Добавлено через 3 минуты
Сейчас посмотрел isValid() после
У меня где-то лежал список необходимых библиотек, но, боюсь, я его потерял.
Помню, что надо кутишные либы для работы с постгрес. libqsqlpsql и еще какие-то.
А еще надо виндовые положите. Из систем32 стянуть какие-то. Не помню.
Нашел. Их там много. Сейчас попробую написать.
Библиотеки должны быть собраны в той же версии Qt как и основной проект.
Slip., распаковал папку в debug к exe файлу, но проблема не исчезла.
Добавлено через 3 часа 15 минут
Посмотрел папку plugins, драйвера и правда существуют, но смущает размер для MySQL ODC PSQL, они не превышают и 100КБ. Знает кто ссылочку на рабочий метод сборки драйверов.
Читайте также: