LINUX.ORG.RU

qt mysql

 , , ,


0

1

Всем привет. Знаю таких тем полно. qt пишет что драйвер не загружен, хотя он есть.
в файл pro подключено QT += sql
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7



Последнее исправление: jashka (всего исправлений: 2)

А где он есть? И как грузишь?

yoghurt ★★★★★
()
Ответ на: комментарий от HerrWeigel

У меня в винде тоже firebird в доступных. И так же ругается. А как кладу dll'ку в папку с прогой - все ништяк.

Тут хз как он ее (прогу) запускает. Из креатора, или бинарник. Есть ли Qt в path, сколько их (версий Qt) одновременно установлено и т. д...

anonymous
()
Ответ на: комментарий от HerrWeigel

QSqlDatabase db = QSqlDatabase(); db.addDatabase(«QMYSQL»);

db.setHostName(adress); db.setDatabaseName(table); db.setUserName(user); db.setPassword(password);

if (!db.open()) { ui->labelConnect->setText(tr(«Подключение не установлено»)); return; } else { ui->labelConnect->setText(tr(«Подключение установлено»)); }

jashka
() автор топика
Ответ на: комментарий от jashka

Когда же вы документацию читать научитесь.

addDatabase() - статический метод класса, который возвращает объект-соединение.

     QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
     db.setHostName("acidalia");
     db.setDatabaseName("customdb");
     db.setUserName("mojito");
     db.setPassword("J0a1m8");
     bool ok = db.open();

http://qt-project.org/doc/qt-4.8/qsqldatabase.html

yoghurt ★★★★★
()
Ответ на: комментарий от jashka

Ну, пример на сайте правильный, ты показал неправильный вариант. Если не получается даже с правильным вариантом — покопай в сторону того, про что анонимус написал: проверь PATH, попробуй драйвер рядом с прогой положить.

HerrWeigel ★★★★
()
Последнее исправление: HerrWeigel (всего исправлений: 1)
Ответ на: комментарий от jashka

Драйвер работает с базой через её клиентскую библиотеку, поэтому она должна быть доступна. Про венду я подумал потому, что под ней часто ловят такую ошибку.

BRE ★★
()
Ответ на: комментарий от jashka

Смысл в том, что ты в своем коде работаешь с некорректным объектом.

С исправленным кодом проверяй дальше, стоит ли у тебя сам mysql plugin и видит ли его приложение (можно в strace посмотреть, как происходит поиск/загрузка).

yoghurt ★★★★★
()
Ответ на: комментарий от jashka

Проверь как собрано приложение Debug/Release.

Может ты собираешь как Debug, а у тебя модуля соответствующего нет. Проверь наличие всех библиотек/модулей/плагинов собранных как Debug и как Release

AlexVR ★★★★★
()
Ответ на: комментарий от jashka

Ты как компилируешь? Там и выбирай Debug или Release.

а конкретнее где это проверить ?

Ну тут я не телепат. Ты хоть скажи ОС и как ставил Qt.

AlexVR ★★★★★
()

Если винды - то нужно скинуть mysql.dll в папку с бинарником, если linux установить соответствующий пакет(вроде mysql-dev или qt-sql-mysql, но я не уверен)

Erfinder
()
Последнее исправление: Erfinder (всего исправлений: 1)
Ответ на: комментарий от jashka

А кто будет знать!!!

Если брал с qt-project.org - то просто «молодец». Qt со всеми зависимостями, в твоём случае, надо ставить из стандартных репозиториев. А так, по видимому у тебя либо Qt собран без плагинов, либо нет клиентских библиотек MySQL, либо стоит всё в нестандартном месте.

AlexVR ★★★★★
()

А БД/пользователь, по которым ты коннектишься, вообще существуют? Мускуль вообще работает? Ты как базу создавал?

anonymous
()
Ответ на: комментарий от BRE

linux-vdso.so.1 => (0x00007fff5a119000) libmysqlclient_r.so.16 => not found libQt5Sql.so.5 => /home/jashka/Qt/Tools/QtCreator/bin/plugins/sqldrivers/../../../lib/qtcreator/libQt5Sql.so.5 (0x00007fb8daa3f000) libQt5Core.so.5 => /home/jashka/Qt/Tools/QtCreator/bin/plugins/sqldrivers/../../../lib/qtcreator/libQt5Core.so.5 (0x00007fb8da371000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb8da06d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb8d9ca6000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb8d9a88000) libicui18n.so.51 => /home/jashka/Qt/Tools/QtCreator/bin/plugins/sqldrivers/../../../lib/qtcreator/./libicui18n.so.51 (0x00007fb8d966e000) libicuuc.so.51 => /home/jashka/Qt/Tools/QtCreator/bin/plugins/sqldrivers/../../../lib/qtcreator/./libicuuc.so.51 (0x00007fb8d92e8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb8d90e4000) libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fb8d8ee1000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb8d8cd9000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fb8d89d1000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb8d86ca000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb8d84b4000) /lib64/ld-linux-x86-64.so.2 (0x00007fb8daeb9000) libicudata.so.51 => /home/jashka/Qt/Tools/QtCreator/bin/plugins/sqldrivers/../../../lib/qtcreator/././libicudata.so.51 (0x00007fb8d6d6a000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb8d6b2c000)

jashka
() автор топика
Ответ на: комментарий от jashka

Не хватает клиентской библиотеки mysql:

libmysqlclient_r.so

Установи пакет с этой библиотекой.

BRE ★★
()
Ответ на: комментарий от jashka

Вот смотри, Qt драйвер хочет libmysqlclient.so.16, у тебя установлен libmysqlclient.so.18. Пересобери драйвер с новой версией MySQL.

BRE ★★
()
Ответ на: комментарий от jashka

Когда qt ставил - исходники ставил? Там прямо в инсталляторе пункт должен был быть.

anonymous
()
Ответ на: комментарий от anonymous

Ну так ты их сам сейчас и перечислил.

BRE ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.