На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: Majestio
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Программа не видит драйвер MySQL
    mysql-8.0.22-winx64 - это MySQL Community Server?
    А если он уже установлен?
      Тогда нужно к нему подкручивать Qt, с указанным выше путем.
        Теперь требуеться файл libmysql.dll. С интернета можно скачать?
          вполне, если подходит под версию.
            Цитата DDim1000 @
            Теперь требуеться файл libmysql.dll. С интернета можно скачать?

            Да нет же, это должно быть в "глубинах" установленного MySQL сервера. Посмотри там в bin-папке, там должно быть. И папка эта должна быть доступна в PATH.
              Теперь требуеться qsqlmariadbd.dll. Откуда ее взять?
                Цитата DDim1000 @
                Теперь требуеться qsqlmariadbd.dll. Откуда ее взять?

                А вот это , похоже уже, на плагин QT драйвера БД. На прошлых шагах ты, вроде, компилячил дрова для MySQL, а не для MariaDB (как я советовал). Поэтому проблема, и непонятная. Поиск её, думаю, лучче начать с того, что:

                1) Попробовать, как я советовал, скачать "MariaDB C Connector" и на его основе перекомпилячить драйвер
                2) Или искать инструментарий поиска зависимостей DLL, но это самый сложный путь - там даже если найдешь зависимость, то не понятно как её решить

                Свой MySQL сервер оставляй. Качай коннектор к марии-db. И на основе его собирай новый драйвер. А там посмотрим.
                  1) Установил "MariaDB C Connector";
                  2) Из папки bin скопировал файл libmariadb.dll;
                  3) Сделал копию файла libmariadb.dll и переиминовал ее в libmysql.dll.

                  Тепер в Output пишится:

                  Цитата
                  qt.sql.qsqldatabase: QSqlDatabase: can not load requested driver 'QMYSQL', available drivers: QIBASE QSQLITE QMIMER QMARIADB QMYSQL QOCI QODBC QPSQL
                  MySQL open failed: "Driver not loaded Driver not loaded"


                  Что ни так?
                    Все,драйвер настроен!
                    Теперь другой вопрос. Как обойти требования поддержки протокола SSL?

                    MySQL open failed: "TLS/SSL error: SSL is required, but the server does not support it QMYSQL: Unable to connect"
                      Попробуй что-то типа:

                      ExpandedWrap disabled
                            QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
                         
                            db.setHostName("your-mysql.example.com");
                            db.setPort(3306);
                            db.setDatabaseName("your_database");
                            db.setUserName("your_user");
                            db.setPassword("your_password");
                         
                            QString options =
                                "MYSQL_OPT_SSL_MODE=REQUIRED;"          // или VERIFY_CA / VERIFY_IDENTITY
                                "SSL_CA=/path/to/ca-cert.pem;";         // обязательно указать, если сервер требует проверки
                         
                            // Может потребоваться иногда
                            // options += "SSL_CERT=/path/to/client-cert.pem;"
                            //                  "SSL_KEY=/path/to/client-key.pem;";
                         
                            db.setConnectOptions(options);
                         
                            if (!db.open()) {
                              qDebug() << "Ошибка подключения:" << db.lastError().text();
                              qDebug() << "Детали драйвера:"    << db.lastError().driverText();
                              qDebug() << "Детали БД:"          << db.lastError().databaseText();
                            } else {
                              qDebug() << "Успешно подключились с SSL!";
                            }
                        Вот так заработало.
                        ExpandedWrap disabled
                          db.setConnectOptions("MYSQL_OPT_SSL_VERIFY_SERVER_CERT=FALSE");
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0319 ]   [ 16 queries used ]   [ Generated: 17.03.26, 22:18 GMT ]