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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Драйвер для MariaDB (Ubuntu 18)  (Прочитано 7493 раз)
rudireg
Новичок

Offline Offline

Сообщений: 9


Просмотр профиля
« : Ноябрь 22, 2020, 18:51 »

Всем привет.
Есть код подключения к БД MariaDB

Код:
     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mydb");
     db.setHostName("localhost");
     db.setDatabaseName("tc-db-main");
     db.setUserName("root");
     db.setPassword("12345");
     bool ok = db.open();

Получаю ошибку
Цитировать
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

Из ошибки понятно что нужен драйвер для MySQL
У меня Ubuntu 18.04.4 LTS




Нашел где лежат файлы MySql
/usr/include/mysql


иду по пути где лежат плагины
/home/rudi/Qt/5.11.2/Src/qtbase/src/plugins/sqldrivers/mysql

Оттуда запускаю кманду
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient" mysql.pro


Получаю такой вывод
/home/rudi/Qt/5.11.2/Src/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri:4: Unknown replace function: shadowed
WARNING: /home/rudi/Qt/5.11.2/Src/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri:4: Unable to find file for inclusion /qtsqldrivers-config.pri
WARNING: /home/rudi/Qt/5.11.2/Src/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri:7: Unable to find file for inclusion qt_plugin
Project MESSAGE: Warning: unknown QT: core-private
Project MESSAGE: Warning: unknown QT: sql-private


Подскажите что не так? Как мне сделать драйвер?
« Последнее редактирование: Ноябрь 22, 2020, 19:01 от rudireg » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Ноябрь 23, 2020, 12:08 »

какаято вакханалия версий штатное qt 5.9, поставлено 5.11.2, креатор еще свежее
в составе qt драйвера БД уже собран, но при запуске он не находится
Записан
rudireg
Новичок

Offline Offline

Сообщений: 9


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

какаято вакханалия версий штатное qt 5.9, поставлено 5.11.2, креатор еще свежее
в составе qt драйвера БД уже собран, но при запуске он не находится


У меня есть папки
/home/rudi/Qt/5.9.9
/home/rudi/Qt/5.11.2


Пока что взял и переименовал папку
/home/rudi/Qt/5.9.9
на другое имя
/home/rudi/Qt/5.9.9__old

Сборка драйвера по прежнему не запускается как надо...
Но зато программа подключается к базе MariaDB без ошибок.
 Смеющийся
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Ноябрь 24, 2020, 12:27 »

да нинада ничего собирать, всё собрано до нас ) , если конечно это не самоцель
я кто тому, что если тебе именно надо под 18.04, то и бери штатный qt 5.9 (или какой он там), зачем более свежие qt поставил ?
если надо свежий qt - ставить 20.04 или 20.10

Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Ноябрь 24, 2020, 12:59 »

драйвер иногда надо пересобирать - из-за зоопарка библиотек он может не находить libmysql.so (она может внезапно называться libmariadb.so).
ldd на плагин в помощь - можно просто сделать симлинк с правильным именем. это непереносимое решение, но самое простое.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Ноябрь 24, 2020, 13:01 »

а не, поправка - плагин больше не собирается по дефолту (там что-то с лицензией как я припоминаю)

Код:
$ ll ~/Qt/5.15.1/gcc_64/plugins/sqldrivers/
итого 1528
-rwxr-xr-x 1 ivk 1320632 сен  3 06:08 libqsqlite.so*
-rwxr-xr-x 1 ivk  119360 сен  3 06:07 libqsqlodbc.so*
-rwxr-xr-x 1 ivk  115120 сен  3 06:07 libqsqlpsql.so*
« Последнее редактирование: Ноябрь 24, 2020, 13:03 от Авварон » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #6 : Ноябрь 24, 2020, 13:03 »

Вот мануал как собирать драйвер.
если меняете что-то, надо удалять qmake.stash и прочие файлики которые оно создает (иначе оно кеширует резуьтат конфигурации и по факту ничего не меняется)
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #7 : Ноябрь 24, 2020, 14:48 »

а не, поправка - плагин больше не собирается по дефолту (там что-то с лицензией как я припоминаю)

у ТС старая qt, там всё было собрано (хотя он не объяснил зоопарк версий)
на 20.04 есть пакет libqt5sql5-mysql

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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