LINUX.ORG.RU

QSqlDatabase: QMYSQL driver not loaded

 ,


0

1

Уже очень давно борюсь с этой проблемой, но так и немогу ее решить. libmysqlclient-dev, libqt5sql5-mysql стоит

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

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

ОС - linux ubuntu. Просмотрел кучу гайдов и советов в интернете, все мимо

ldd Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/libqsqlite.so

linux-vdso.so.1 (0x00007fff849c0000)

libQt5Sql.so.5 => /home/pc/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007fb26f103000)

libQt5Core.so.5 => /home/pc/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007fb26e9a9000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb26e970000)

libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb26e782000)

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb26e633000)

libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb26e619000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb26e426000)

libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb26e40a000)

libicui18n.so.56 => /home/pc/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/../../lib/libicui18n.so.56 (0x00007fb26df71000)

libicuuc.so.56 => /home/pc/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/../../lib/libicuuc.so.56 (0x00007fb26dbb9000)

libicudata.so.56 => /home/pc/Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/../../lib/libicudata.so.56 (0x00007fb26c1d6000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb26c1d0000)

libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fb26c1c9000)

libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fb26c0a1000)

/lib64/ld-linux-x86-64.so.2 (0x00007fb26f652000)

libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fb26c02d000)

а задача наша состоит в том, чтобы угадать, что ты там понаписал в коде?

выкладывай свои потуги. минимальный пример, который «не работает»

aol ★★★★★
()

ldd Qt5.11.2/5.11.2/gcc_64/plugins/sqldrivers/libqsqlite.so

спрашиваешь про QMYSQL а смотришь в libqsqlite

dib2 ★★★★★
()

Показывает, что драйвер не загружен, но при этом сам же кьют его предлагает строкой ниже, что за прикол?

Прикол в том, что driver not loaded может означать (и в большинстве случаев означает) проблемы не с самим драйвером, а с одной из нужных ему динамических библиотек. Вот ты простыню для sqlite вывел, делай теперь такую же для MySQL и ищи, чего там не хватает.

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

спрашиваешь про QMYSQL а смотришь в libqsqlite

ldd Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/libqsqlmysql.so

linux-vdso.so.1 (0x00007ffed47d8000)

libQt5Sql.so.5 => /home/pc/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007f9214e5d000)

libQt5Core.so.5 => /home/pc/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007f92146ad000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9214674000)

libmysqlclient.so.18 => not found

libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9214486000)

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9214337000)

libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f921431b000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f921412a000)

libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f921410e000)

libicui18n.so.56 => /home/pc/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/../../lib/libicui18n.so.56 (0x00007f9213c75000)

libicuuc.so.56 => /home/pc/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/../../lib/libicuuc.so.56 (0x00007f92138bd000)

libicudata.so.56 => /home/pc/Qt5.13.2/5.13.2/gcc_64/plugins/sqldrivers/../../lib/libicudata.so.56 (0x00007f9211eda000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9211ed2000)

libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f9211ecd000)

libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9211da5000)

/lib64/ld-linux-x86-64.so.2 (0x00007f92152ba000)

libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9211d31000)
boganet9993
() автор топика
Ответ на: спрашиваешь про QMYSQL а смотришь в libqsqlite от boganet9993

Проблема скорее всего в том, что ты используешь Qt с сайта, который собирался с расчётом на RHEL/CentOS, а у тебя наверняка какая-то Ubuntu, в которой библиотеки давно уже новые и libmysqlclient.so.18 просто не существует. Он может быть libmysqlclient.so.19, или вообще чем-то вроде libmariadb.so.3

Решение проблемы – использовать тот Qt, что идёт в поставке твоего дистрибутива. Если нужна версия новее – подключать PPA. В противном случае тебе придётся этот libmysqlclient.so.18, ставить его всякими хаками и надеятся, что не будет конфликтов:

https://superuser.com/questions/1101426/installing-libmysqlclient18-on-ubuntu-16-04

Либо вообще собирать эту библиотеку ручками.

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

Это если в новой версии API не был сломан, иначе можно наткнуться на трудноуловимые сегфолты.

EXL ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

А откуда в недистрибутивном Qt 5.11 будет libmysqlclient к которому прилинкован драйвер?

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