Не удалось подключиться к базе данных проверьте настройки бд driver not loaded

Обновлено: 05.07.2024

Среда разработки этого проекта (решения):

(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 минуту
На стакоферфлове, мне подсказали где взять исходники и собрать плагин с нуля.

Плагин собрался, осталось понять как добавить его в Qt. Опять же - у меня нет идей. Так понимаю, что надо из папки где прошла компиляция чего-то скопировать в папку Qt. Но вот что именно? Плагин собрался, осталось понять как добавить его в Qt. Опять же - у меня нет идей.

ubuntu amd64 плагин хранит по адресу /usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlpsql.so

Добавлено через 8 минут
Однако, у вас такая каша с версиями. Уточните, какая OS и как устанавливали Qt? Это ведь не windows какая нибудь, в линукс все что вы пытаетесь достичь (установка qt + плагин для postgresql) в 2 вызова пакетного менеджера делается.

у вас же установлен пакет libqt5sql5-psql) нужен, как минимум, libpq-dev

Я тут выделил ключевое и верное в этой теме. Все остальное - это бесполезные попытки шаманизма. В программировании это всегда только вредит.


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"); .

Под виндой? Надо либо пути к библиотекам указывать, либо положить их рядом с экзешником. Библиотек много, основные libqsqlpsql, кажется. Но там еще зависимости есть. Их можно dependenciewalker'ом посмотреть, либо тут на форуме выкладывали софтину.
Вообще, такие темы уже были и не одна, воспользуйтесь поиском по форуму.

Slip., да, по Windows. Через PATH указал пути, положил все .dll файлы Postgress'a из bin и lib рядом с .exe. Но работать так и не захотел. Вычитал где-то про addLibraryPath(), но ей я ни разу не пользовался, даже не представляю как добавить. В принципе по форуму одно и тоже, добавить к exe библиотеки и прописать PATH.

Добавлено через 3 минуты
Сейчас посмотрел isValid() после

У меня где-то лежал список необходимых библиотек, но, боюсь, я его потерял.
Помню, что надо кутишные либы для работы с постгрес. libqsqlpsql и еще какие-то.
А еще надо виндовые положите. Из систем32 стянуть какие-то. Не помню.
Нашел. Их там много. Сейчас попробую написать.

В plugins\sqldrivers все библиотеки складываете.
Библиотеки должны быть собраны в той же версии Qt как и основной проект.

Slip., распаковал папку в debug к exe файлу, но проблема не исчезла.

Добавлено через 3 часа 15 минут
Посмотрел папку plugins, драйвера и правда существуют, но смущает размер для MySQL ODC PSQL, они не превышают и 100КБ. Знает кто ссылочку на рабочий метод сборки драйверов.

Читайте также: