Если статья является оригинальной, при перепечатке просьба указывать источник оригинальной статьи.Адрес
блога этой статьи: https://hpzwl.blog.csdn.net/article/details/130381428
Колонка разработки Qt: технология разработки сторонних библиотек
предисловие
Скорректирована версия драйвера mysql msvc2015x32.Предыдущая версия драйвера mysql mingw32 была скомпилирована и протестирована.Некоторые трехсторонние библиотеки поддерживают по крайней мере vs2017, поэтому вы можете использовать только msvc2017x64, который основан на Qt5.9.3.Так что эта статья компилируется версия драйвера mysql msvc2017x64.Чтобы удовлетворить текущие специфические потребности, этот процесс немного трудоемок.Возможно, версия Qt ниже, чем Qt5.12, поэтому продолжайте делиться ею без оговорок.
В этой статье в основном описан процесс компиляции драйвера Qt5.9.3 msvc2017x64 + mysql8.0.16.
связанный блог
" Замечания по разработке Qt+MySql: версия mingw32 для Qt5.9.3 компилирует драйвер версии MySql8, и демонстрационная версия подключается к тесту базы данных " " Замечания
по разработке Qt+MySql: версия Qt5.9.3 msvc2017x64 компилирует драйвер версии MySql8.0.16, и демонстрационная версия подключается к тесту базы данных "
" Замечания по разработке MySql: создание службы базы данных MySql и импорт скрипта построения
таблиц размерная карта, контроль ограничения времени, отладка параметров и т. д.) " Обмен
случаями : строительная техника Qt, система вакуумной лазерной сварки, настройка программного продукта (ПЛК Siemens, база данных mysql, управление полномочиями пользователя, конфигурация интерфейса, настройка параметров, проигрыватель, двумерный значок) , rgv car, контроль сроков, отладка параметров и т. д.)》
Среда компилятора
Qt5.9.3 msvc2017x64
При установке не забудьте проверить исходный код
mysql-установщик-сообщество-8.0.16.0
скачать базу данных
https://downloads.mysql.com/archives/community/
Скомпилируйте библиотеку драйверов mysql (Qt5.9.3+mysql8.0.16)
Шаг 1: Установите Qt5.9.3 и проверьте версию msvc2017x64.
Другие процессы опущены.
Шаг 2. Загрузите 64-разрядный драйвер базы данных, чтобы запустить программу и распаковать ее.
Загрузите файл пакета среды выполнения базы данных. (Примечание: она должна соответствовать версии, установленной на целевой машине).
Адрес загрузки: https://dev.mysql.com/downloads/connector/cpp
(см. " Вход в яму 1 " здесь)
прямо пропустил загрузку, т.к. загруженная текущая компиляция имеет проблемы.
База установлена локально, напрямую через местный вверх:
Шаг 3: Откройте проект исходного кода mysql, поставляемый с qt.
Открыть с помощью QtCreator
Здесь нам нужно убрать тень, иначе будут другие ошибки, обратитесь к «Яме 1» и «Яме 2»:
Шаг 4: qmake и сборка
(Если вы сообщаете об ошибке здесь, вернитесь и посмотрите на шаг 3 и войдите в яму один или два )
Шаг 5: Замените библиотеку mysql плагина
Шаг 6: Скопируйте libmysql.dll базы данных в каталог bin
Скопируйте libmysql.dll из mysql lib в каталог bin msvc2017x64 в qt и принесите его при упаковке программного обеспечения.
Вот прямое копирование libmysql.dll, соответствующего предыдущей библиотеке, в корзину и папку развертывания приложений qt:
(PS: windeployqt не будет активно копироваться при упаковке и выпуске, его нужно копировать вручную)
Шаг 7: Скомпилируйте тест подключения приложения
Переключите приложение с драйвера odbc на драйвер mysql для компиляции проекта базы данных:
это потому, что mysql8 изменил метод шифрования.Если вы используете драйвер mysql напрямую, вам необходимо изменить метод шифрования.Метод модификации в основном применяется при развертывании базы данных. Вы можете войти в базу данных и выполнить следующие операции:
Затем примените тест входа
Если удаленный вход по-прежнему требуется, перейдите к шагам 8 и 9:
Шаг 8: Настройте учетную запись базы данных, чтобы разрешить удаленную работу (этот шаг является предыдущим тестовым шагом mingw32, поместите его здесь для удобства)
Это связано с тем, что учетной записи не разрешен удаленный вход в систему, поэтому необходимо изменить конфигурацию пользователя базы данных, чтобы разрешить удаленный вход.
Чтобы разрешить пользователю удаленный вход в систему, сначала используйте терминал управления mysql, чтобы ввести пароль для входа в систему, а затем выполните
:
use mysql;
select host,host from user;
update user set host = ‘%’ where user = ‘root’;
select host,host from user;
В настоящее время это все еще не работает, вам необходимо принудительно обновить следующее
flush privileges;
Тогда успех:
На данный момент был скомпилирован драйвер подключения к базе данных Qt5.9.3 msvc2017x64 + mysql8.0.16.
Шаг 9: Подключитесь к инструменту удаленного управления базой данных (этот шаг является тестовым шагом mingw32 ранее, поместите его здесь для удобства)
Используйте удаленные инструменты для проверки и поиска ошибки:
это связано с тем, что mysql изменил правила шифрования паролей после версии 8.0. Текущее программное обеспечение для подключения клиента не поддерживает новый метод шифрования caching_sha2_password, добавленный Mysql8, поэтому необходимо изменить метод шифрования пользователя и измените его обратно на Старый метод аутентификации с шифрованием.
Сначала войдите в командную строку mysql и выполните следующее, главным образом, чтобы заменить youPassword паролем учетной записи, который вы используете для удаленного входа в систему:
alter user 'root'@'%' identified by 'youPassword' password expire never;
alter user root identified with mysql_native_password by 'youPassword';
flush privileges;
в яму
Яма 1: ошибка компиляции не может быть открыта «Не удается открыть входной файл» D:\mysql-connector-c-6.1.11-winx64\lib.ob
вопрос
Ошибка компиляции, не могу пройти
попробуй решить
Многосторонний поиск, ориентированный на предоставленную версию библиотеки, тоже не работает.
В этой версии я, наконец, попытался получить его прямо из папки установки mysql, и это прошло, но я не увидел файл, записанный в корне (позже я проверил путь, чтобы убедиться, что он не был сгенерирован в корневом каталоге ).
Следующий процесс создания скриншота может означать:
Затем удалите тень и добейтесь успеха:
решать
Удалите shaodw и проверьте путь в " Enting the Pit 2 ".
Запись 2: нет вывода компиляции
вопрос
Скомпилировал по предыдущему mingw32 не нашел выход
причина
Есть несколько файлов конфигурации, поэтому создайте их все напрямую, чтобы увидеть сгенерированную папку.
Оказалось, что это проблема пути.
решать
Найдите соответствующий путь и сгенерируйте его.
Совмещая 1 и 2, есть еще проблема с попыткой скачать компилятор vc версии библиотеки драйверов.На пробы, изучение и постепенное устранение различных проблем ушло почти полдня.
Если статья является оригинальной, при перепечатке просьба указывать источник оригинальной статьи.Адрес
блога этой статьи: https://hpzwl.blog.csdn.net/article/details/130381428