Russian Qt Forum
Декабрь 27, 2024, 03:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ошибка QMYSQL driver not loaded  (Прочитано 45272 раз)
useruser
Гость
« : Ноябрь 27, 2013, 16:29 »

Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setPort(3306);
        db.setHostName("92.53.98.20");
         db.setDatabaseName("fr4402");
       db.setUserName("fr4402");
        db.setPassword("0123456");
        bool ok = db.open();

Пишет в дебагере
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3
QSqlQuery::exec: database not open

Какой драйвер и куда он хочет?) ОС Windows 7.
До смены хостинга такого не писал. Поменял хостинг (может другая версия mysql??-хотя и тут и там 5я) и написал эту ошибку.

Файлы libmysql.dll и libmysql.lib для этой БД mysql у меня есть.
« Последнее редактирование: Ноябрь 27, 2013, 16:38 от useruser » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Ноябрь 27, 2013, 17:07 »

http://qt-project.org/doc/qt-4.8/sql-driver.html#qmysql
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
useruser
Гость
« Ответ #2 : Ноябрь 27, 2013, 17:45 »

В предлагаемой статье ответа на мой вопрос нет.
Записан
Majestio
Гость
« Ответ #3 : Ноябрь 27, 2013, 18:30 »

Файлы libmysql.dll и libmysql.lib для этой БД mysql у меня есть.

Для использования MySQL - драйвер нужно предварительно собрать. В рамках Qt он именуется плагином. В линке, что давали ранее - есть вся инфа по сборке этого плагина (драйвера).

Судя по твоим логам - этого плагина (драйвера) у тебя нет, читай "не собирал".
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #4 : Ноябрь 27, 2013, 18:40 »

Судя по твоим логам - этого плагина (драйвера) у тебя нет, читай "не собирал".

Ну не надо так категорично!
Еще такая ошибка может возникать если программа не находит нужную библиотеку libmysql.dll в %PATH%.
Записан

Majestio
Гость
« Ответ #5 : Ноябрь 27, 2013, 18:45 »

Судя по твоим логам - этого плагина (драйвера) у тебя нет, читай "не собирал".

Ну не надо так категорично!
Еще такая ошибка может возникать если программа не находит нужную библиотеку libmysql.dll в %PATH%.

Безусловно. Но топикстартер упомянул "Файлы libmysql.dll и libmysql.lib для этой БД mysql у меня есть", а про плагин си сном ни духом. Вывод?
Записан
useruser
Гость
« Ответ #6 : Ноябрь 27, 2013, 21:02 »

Спорить о том, что драйверы можно собирать или писать самому, я не буду.
Но тут есть 3 но:
1) С другим хостингом работало. Ничего не удалял, переустанавливал. Где драйвер? Самоудалился? Загадка.)
2) База данных и на старом и на новом хостинге MySQL 5. Какая 5 (версия) - не смотрел. А QT работает с этой БД-так  написано в статье.
3) Собирать или писать драйвер под одну из самых распостраненных в мире баз данных, установленную на любом хостинге, входящую в LAMP любого линукса, для систем Windows или Linux -это "не есть правильно". А для Windows систем -абсурд.
Для таких, типовых задач, драйвер должен быть. И в большинстве сред разработки он есть, либо его можно скачать.
Записан
Majestio
Гость
« Ответ #7 : Ноябрь 27, 2013, 21:18 »

Спорить о том, что драйверы можно собирать или писать самому, я не буду.
Но тут есть 3 но:
1) С другим хостингом работало. Ничего не удалял, переустанавливал. Где драйвер? Самоудалился? Загадка.)
2) База данных и на старом и на новом хостинге MySQL 5. Какая 5 (версия) - не смотрел. А QT работает с этой БД-так  написано в статье.
3) Собирать или писать драйвер под одну из самых распостраненных в мире баз данных, установленную на любом хостинге, входящую в LAMP любого линукса, для систем Windows или Linux -это "не есть правильно". А для Windows систем -абсурд.
Для таких, типовых задач, драйвер должен быть. И в большинстве сред разработки он есть, либо его можно скачать.

А Б И С Ь Н Я Ю  Смеющийся

1) Драйвера MySQL в поставке Qt в собранном виде нет, так решили. Нужно собирать самому.
2) Qt работает уверенно с MySQL.
3) Рассуждение неправильное! Хотите драйвер MySQL - получите. Для этого найдите его исходник в поставке, скомпилируйте, соберите в DLL, положите в нужное вам место ... ну и все.

Давай твой драйвер компилировать и подключать, ланна? Улыбающийся
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Ноябрь 27, 2013, 21:23 »

1) С другим хостингом работало. Ничего не удалял, переустанавливал. Где драйвер? Самоудалился? Загадка.)

Ты не привёл полную иерархию файлов и каталогов твоей программы, мы не знаем был он у тебя вообще или нет.

2) База данных и на старом и на новом хостинге MySQL 5. Какая 5 (версия) - не смотрел. А QT работает с этой БД-так  написано в статье.

Работает, конечно. Через SQL плагин

3) Собирать или писать драйвер под одну из самых распостраненных в мире баз данных, установленную на любом хостинге, входящую в LAMP любого линукса, для систем Windows или Linux -это "не есть правильно". А для Windows систем -абсурд.

Пользователи Windows должны страдать Не знаю распространяется ли MYSQL плагин вместе с официальной сборкой Qt, вполне вероятно, что нет. Если нет, то не составляет труда его собрать. Писать его не нужно, естественно. Ещё можно взять готовые сборки Qt уже с этим и другими плагинами, и не париться. Например, отсюда. В Linux он собирается мейнтейнерами дистрибутивов и почти всегда присутствует.

Для таких, типовых задач, драйвер должен быть. И в большинстве сред разработки он есть, либо его можно скачать.

Qt - это не среда разработки, не путай с RAD типа Delphi.
« Последнее редактирование: Ноябрь 27, 2013, 21:25 от Alex Custov » Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #9 : Ноябрь 27, 2013, 21:34 »

Если ничего не делал, и отвалилось по вине хостера то для решения задачи не хватает полной картины.  У меня есть несколько вопросов.

Я так понял пользователь сидит в ОС Windows на локальной машине (не на хосте)
  • наличие драйвера в каталоге plugins/sqldrivers/qsqlmysql4.dll  (qsqlmysql.dll для Qt5)
  • наличие клиентской библиотеки libmysql.dll одноименной с MySQL сервером версией
  • клиентская библиотека должна лежать в одном каталоге с запускаемой программой

Если все на месте, проверить зависимость драйвера от сторонних библиотек. Например Dependency Walker-ом

Для UNIX
  • наличие драйвера в каталоге $QT_INSTALL_PLUGINS/plugins/sqldrivers/qsqlmysql4.so
  • наличие клиентской библиотеки libmysql.so.X одноименной с MySQL сервером версией
  • Клиентская биб-ка (или ее линк) должна быть в $LD_LIBRARY_PATH  или  в  /usr/lib

Если все на месте, проверить зависимость драйвера от сторонних библиотек
команда ldd -v $QT_INSTALL_PLUGINS/plugins/sqldrivers/qsqlmysql4.so
(переменная QT_INSTALL_PLUGINS может быт не установлена, в этом случае перейти в каталог с драйвером и выполнить
ldd -v ./qsqlmysql4.so)
Записан

Majestio
Гость
« Ответ #10 : Ноябрь 27, 2013, 21:38 »

Все совершенно верно на 100%.
За исключением одного - исходный код драйвера (плугина) уже есть в поставке Qt.
И работает для всех платформ. Одно "но" - он по сути "прослойка". Нужен он и специфические библиотеки MySQL (сам работаю с PostgreSQL, а там именно так).
Записан
Majestio
Гость
« Ответ #11 : Ноябрь 27, 2013, 21:43 »

Если ничего не делал, и отвалилось по вине хостера то для решения задачи не хватает полной картины.  У меня есть несколько вопросов.

Я так понял пользователь сидит в ОС Windows на локальной машине (не на хосте)
  • наличие драйвера в каталоге plugins/sqldrivers/qsqlmysql4.dll  (qsqlmysql.dll для Qt5)
  • наличие клиентской библиотеки libmysql.dll одноименной с MySQL сервером версией
  • клиентская библиотека должна лежать в одном каталоге с запускаемой программой

Если все на месте, проверить зависимость драйвера от сторонних библиотек. Например Dependency Walker-ом

Для UNIX
  • наличие драйвера в каталоге $QT_INSTALL_PLUGINS/plugins/sqldrivers/qsqlmysql4.so
  • наличие клиентской библиотеки libmysql.so.X одноименной с MySQL сервером версией
  • Клиентская биб-ка (или ее линк) должна быть в $LD_LIBRARY_PATH  или  в  /usr/lib

Если все на месте, проверить зависимость драйвера от сторонних библиотек
команда ldd -v $QT_INSTALL_PLUGINS/plugins/sqldrivers/qsqlmysql4.so
(переменная QT_INSTALL_PLUGINS может быт не установлена, в этом случае перейти в каталог с драйвером и выполнить
ldd -v ./qsqlmysql4.so)

Сорри ... много букваф Улыбающийся

Сообщение:
Цитировать
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3
говорит о  том, что этот драйвер по какой-то причине не грузится (если он есть). Надо искать причины.
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #12 : Ноябрь 27, 2013, 21:48 »

Сорри ... много букваф Улыбающийся
.......
говорит о  том, что этот драйвер по какой-то причине не грузится (если он есть). Надо искать причины.

Дык а я о чем кашляю!!!   В тех моногоБакавах заложен механизм поиска причин!


Записан

Majestio
Гость
« Ответ #13 : Ноябрь 27, 2013, 21:54 »

Дык а я о чем кашляю!!!   В тех моногоБакавах заложен механизм поиска причин!
И самая главная ... а есть ли драйвер вааще? Улыбающийся
Записан
SuleymanStalskiy
Гость
« Ответ #14 : Май 23, 2014, 10:09 »

Подскажите пожалуйста.
Если QT не собран из исходников, а просто установлен из "Qt 5.3.0 for Windows 32-bit (MinGW 4.8.2, OpenGL, 734 MB)". Можно ли в таком случае уже потом собирать драйвер для MYSQL (просто скачав исходники Qt с сайта и запустив сборку драйвера) или надо обязательно собрать Qt из исходников?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 22.