Название: Qt 5.8 и MySQL драйвер Отправлено: urivskay от Февраль 07, 2017, 16:25 Добрый день. Прежде чем, обратиться к вам за помощью, я перечитала кучу статей, о том как собрать драйвер Mysql для Qt под Windows. Много раз пробовала, но никак не получается у меня собрать этот драйвер. Подскажите, пожалуйста, в чём может быть проблема ? Ниже описаны действия, которые я проделала:
1) скачала qt-opensource-windows-x86-mingw530-5.8.0.exe. При установке добавила галочку, установить исходники. 2) скачала mysql-5.5.23-win32.msi с сайта http://www.mysql.ru/download/ и установила. Установка была в папку C:\Program Files (x86)\MySQL\MySQL Server 5.5. После установки я скопировала папку MySQL и положила в корень диска C, заменив пробелы в имени папки нижним подчеркиванием. 3) в переменную среды Path добавила: C:\MySQL\MySQL_Server_5_5; C:\Qt\Qt5.8.0\5.8\mingw53_32\bin; C:\Qt\Qt5.8.0\5.8\mingw53_32\lib; C:\MySQL\MySQL_Server_5_5\lib; C:\Qt\Qt5.8.0\Tools\mingw530_32\bin 4) Запустила Qt 5.8 for Desktop (MinGW 5.3.0 32 bit).exe и выполнила в нём следующие команды: set mysql=C:\MySQL\MySQL_Server_5_5 cd C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\mysql qmake "INCLUDEPATH+=%mysql%\\include" "LIBS+=-L%mysql%\\lib\\ -lmysql" -o Makefile mysql.pro mingw32-make Пошла сборка, но завершается не успешно. В выводе я не вижу ошибок, но сборка заканчивается странной строчкой: Leaving directory 'C:/Qt/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/mysql' В папке C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\mysql не появилось .dll файлов. Повторный вызов команды mingw32-make выводит странные ошибки. Я прилагаю скриншот с ошибками. Пожалуйста, помогите, разобраться в чём причина не успешной сборки и что мне делать ? Название: Re: Qt 5.8 и MySQL драйвер Отправлено: ViTech от Февраль 07, 2017, 16:49 А где-нибудь в "C:\Qt\Qt5.8.0\5.8\mingw53_32\bin" нужной dll не появилось? Или в "C:\Qt\Qt5.8.0\5.8\mingw53_32\plugins\sqldrivers\"? В Qt 5.8 пути могут быть другие, пишу по аналогии Qt 5.6.
Название: Re: Qt 5.8 и MySQL драйвер Отправлено: urivskay от Февраль 07, 2017, 16:52 Появилось! Я нашла "105-й" мануал по тому как собрать драйвер MySQL. Сделала всё как в нём описано и нашла собранные файлы!
Ссылка на мануал, который мне помог https://wiki.belykh.me/wiki/index.php/Сборка_драйвера_MySQL_для_Qt Уже проверила в проекте, соединение с БД успешно устанавливается, и никаких ошибок больше не сыпется. Всем спасибо за внимание! Название: Re: Qt 5.8 и MySQL драйвер Отправлено: urivskay от Февраль 07, 2017, 17:17 Возник ещё вопрос. Как мне через Qt приложение соединиться с удаленным сервером mysql ? Через phpMyAdmin на хостинге, я успешно захожу в свою базу. Но вот через приложение не удается соединиться... Я так понимаю дело наверное в ssl соединение, которое должно использоваться при подключении к базе. Кто сталкивался, подскажите,пожалуйста, как вы этого добились ?
Приведу мой простенький код: Код: #include "mainwindow.h" Название: Re: Qt 5.8 и MySQL драйвер Отправлено: PimenS от Февраль 07, 2017, 19:31 Причин отказа может быть несколько.
1. На сервере запрещены внешние соединения с базой. 2. Для внешнего соединения определен не стандартный порт соединения. Цитировать db.setHostName("mysql87.1gb.ru"); db.setDatabaseName("имя базы"); db.setUserName("пользователь"); db.setPassword("пароль"); Какой вы порт используете? это с чего бы я начал проверять. Название: Re: Qt 5.8 и MySQL драйвер Отправлено: ssoft от Февраль 07, 2017, 19:39 Неплохо бы еще воспользоваться методом lastError(), и соответствующими методами QSqlError
Код
и др. Название: Re: Qt 5.8 и MySQL драйвер Отправлено: vebmaster от Февраль 09, 2017, 13:44 вместо сборки соей libmysql.dll лучше возьмите уже готовую, я брал из дистрибутива OpenServer: OpenServer\modules\database\MySQL-5.7\lib\
Код: if ( ! db.open() ) { Название: Re: Qt 5.8 и MySQL драйвер Отправлено: urivskay от Февраль 09, 2017, 13:59 Спасибо все за ответы! Всё дело оказалось в том, что на рабочем компьютере у меня были закрыты порты. И поэтому я не могла соединиться с внешней базой. Сейчас всё в порядке)
P.S. Про OpenServer впервые слышу. Посмотрю. Спасибо) |