Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt и MySQL. Запуск на другом компьютере.



  • Создаю небольшое серверное приложение, работающее с базой данных. Установлена Win 8.1 x64, QT 5.8.0 на MinGW x32. Плагин qsqlmysql.dll шёл сразу в комплекте. В проекте как положено подключил sql, и скинул libmySQL.dll из папки установленного MySQL сервера в папку %QTDIR%/mingw53_32/bin. На моём компьютере всё работает.
    Собираю release сборку, копирую нужные Qt****.dll, .dll для MinGW, папки platforms и sqldrivers, а также libmySQL.dll в папку с экзешником. Тем не менее, при запуске на другом компьютере с Win 7 x64, qt сообщает что не удаётся загрузить QMYSQL driver, в доступных драйверах он есть.
    Видел много обсуждений на эту тему. В основном советуют собирать qsqlmysql.dll вручную, но у меня то он есть, и превосходно работает на машине с qt. Все проблемы при запуске на другом компе... Прошу помочь - куда копать и что делать дальше.



  • @Andrewer said in Qt и MySQL. Запуск на другом компьютере.:

    Создаю небольшое серверное приложение, работающее с базой данных. Установлена Win 8.1 x64, QT 5.8.0 на MinGW x32. Плагин qsqlmysql.dll шёл сразу в комплекте. В проекте как положено подключил sql, и скинул libmySQL.dll из папки установленного MySQL сервера в папку %QTDIR%/mingw53_32/bin. На моём компьютере всё работает.
    Собираю release сборку, копирую нужные Qt****.dll, .dll для MinGW, папки platforms и sqldrivers, а также libmySQL.dll в папку с экзешником. Тем не менее, при запуске на другом компьютере с Win 7 x64, qt сообщает что не удаётся загрузить QMYSQL driver, в доступных драйверах он есть.
    Видел много обсуждений на эту тему. В основном советуют собирать qsqlmysql.dll вручную, но у меня то он есть, и превосходно работает на машине с qt. Все проблемы при запуске на другом компе... Прошу помочь - куда копать и что делать дальше.

    Можете ли вы получить доступ к workbench mysql на целевом компьютере



  • Добрый день.
    Честно говоря мне не разу ни удалось использовать драйвер из комплекта, но я всегда сразу видел, что он не работает. Если у вас он работает, то ОК, но я бы его пересобрал под целевую версию MySQL.
    По вашей задаче не совсем понятно - какие именно "проблемы при запуске" (нет подключения к БД или программа вовсе не запускается, или дает ошибку (вылет) + интересует расположение БД (в локальной сети или интернет).
    Если у вас БД на каком-нибудь хостинге, то наверняка у хостера для клиентского компьютера должно быть прописано разрешение на удаленное подключение к БД.



  • @Avtansh-Sharma немного не понимаю к чему здесь workbench. На целевом не работает ни подключение к локальной БД, ни к удалённой (обе 100% рабочие), на моём подключается и туда и туда.



  • Вот собственно говоря ошибка.
    http://savepic.ru/14792327.png



  • @Andrewer said in Qt и MySQL. Запуск на другом компьютере.:

    немного не понимаю к чему здесь workbench. На целевом не работает ни подключение к локальной БД, ни к удалённой (обе 100% рабочие), на моём подключается и туда и туда.

    Try

    if (QSqlDatabase::drivers().isEmpty())
    qInfo()<<("This demo requires at least one Qt database driver. "
    "Please check the documentation how to build the "
    "Qt SQL plugins.");

    Запустите этот код, чтобы проверить доступность SQL-драйверов на целевой машине



  • @Andrewer

    Вы решили проблему?



  • @Avtansh-Sharma нет, я оставил её в долгий ящик, т.к. времени сейчас нет, а сервер всё равно будет на Linux. Но MYSQL драйвер на целевой машине доступен.



  • @Andrewer said in Qt и MySQL. Запуск на другом компьютере.:

    нет, я оставил её в долгий ящик, т.к. времени сейчас нет, а сервер всё равно будет на Linux. Но MYSQL драйвер на целевой машине доступен.

    ОК



  • Предлагаю свое РЕШЕНИЕ ПРОБЛЕМЫ.

    При переносе релиза приложения Qt с MySql на др. компьютер и попытке запуска, выдавалось: SQL DRIVER NOT LOADED. Сейчас все РАБОТАЕТ. Как достиг этого:

    1. В папке релиза, рядом с exe-шником, должна располагаться папка sqldrivers c файлом qsqlmysql.dll. Этот файл брал из: Пусть_установки_Qt\5.12.0\mingw73_64\plugins\sqldrivers

    2. В папке релиза, рядом с exe-шником, должен лежать файл libmysql.dll. Этот файл брал из: C:\Program Files\MySQL\MySQL Server 8.0\lib

    3. В папке релиза, рядом с exe-шником, должны лежать файлы libeay32.dll и ssleay32.dll. Эти файлы брал из: C:\Program Files\MySQL\MySQL Server 8.0\bin

    Только при обязательном выполнении этих трех пунктов. Приложение - релиз, запускаемое на другом компе, нормально подключалось к Базе данных mysql.

    Был потрачен день на поиск решения (на форумах много советов, но этого я не нашел в свое время). Надеюсь, кому-то пригодится!


Log in to reply