Qt 5.12.1 QSqlDatabase: QMYSQL driver not loaded Linux

96
11 января 2020, 06:30

Linux Mint 19.1

Работаю в Qt Creator с C++. Пытаясь подключиться к MySQL вижу такую проблему:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
Cannot open database: QSqlError("", "Driver not loaded", "Driver not loaded")

По адресу:

/home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers

следующие файлы:

libqsqlite.so
libqsqlite.so.debug
libqsqlmysql.so
libqsqlmysql.so.debug
libqsqlpsql.so
libqsqlpsql.so.debug

libmysqlclient и libssl уже стоят(проверял в Synaptic)

выхлоп ldd

ldd ~/Qt/5.12.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so
linux-vdso.so.1 (0x00007ffd29593000)
libQt5Sql.so.5 => /home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007fa092088000)
libQt5Core.so.5 => /home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers/../../lib/libQt5Core.so.5 (0x00007fa0918f0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa0916d0000)
libmysqlclient.so.18 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa091340000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa090fa0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa090d88000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa090990000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa090770000)
libicui18n.so.56 => /home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers/../../lib/libicui18n.so.56 (0x00007fa0902d0000)
libicuuc.so.56 => /home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers/../../lib/libicuuc.so.56 (0x00007fa08ff18000)
libicudata.so.56 => /home/marko/Qt/5.12.1/gcc_64/plugins/sqldrivers/../../lib/libicudata.so.56 (0x00007fa08e530000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa08e328000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fa08e120000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fa08de08000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa0924e8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa08db90000)

По идее я должен собрать исходники драйвера для СУБД, но я не совсем понимаю, что конкретно нужно делать. В линуксе и программировании не спец(пока что) Как заставить драйвер СУБД работать при таком раскладе вещей?

Answer 1

Данная проблема решается с помощью установки libmysqlclient18 У меня была установлена библиотека libmysqlclient20(на данный момент в репозиториях только она) и с ней кьют работать не захотел.

По словам пользователя Fat-Zer

ibmysqlclient с обновлением мажорных версий ломает ABI, а, во-вторых, это отражено в том, что драйвер слинкован именно с libmysqlclient.so.18

Библиотека была скачана отсюда. (Ссылка на packages.ubuntu.com)

READ ALSO
Когда удаляется static поле класса?

Когда удаляется static поле класса?

В какой момент будет удалено статическое поле класса, если деструктор класса виртуальный?

111
Поиск по условию и вывод из вектора

Поиск по условию и вывод из вектора

Есть vector<string> words; со словами, взятыми из файла

152
Требуется спецификатор типа: вложенные классы. C++

Требуется спецификатор типа: вложенные классы. C++

При попытке инициализации члена класса, являющегося при этом объектом вложенного класса, возникает ошибкаВот код:

343