Я борюсь, чтобы найти решение для моей проблемы:
Когда я запускаю свое приложение Python в своей IDE, соединение с базой данных работает нормально. Но когда я создаю exe-файл с помощью pyinstaller с помощью следующей команды python3 -m PyInstaller .\home.py
, запускаю приложение и запускаю соединение с БД, это дает мне следующую ошибку:
Раньше у меня была такая же ошибка с "caching_sha2_password"
вместо "mysql_native_password"
, затем я изменил плагин db на "mysql_native_password"
, но он все равно не работает в exe.
Моя база данных работает в контейнере Docker. Пользователь root, которого я использую для подключения, также имеет mysql_native_password
в качестве плагина аутентификации.
Однако каким-то образом соединение с БД работает каждый раз, когда я запускаю свое приложение из своей IDE. Эта проблема возникает только после того, как я экспортировал свое приложение в exe-файл с помощью pyinstaller.
Подключение к БД выглядит так:
mysql.connector.connect(
host = "localhost",
user = "user",
passwd = "password",
database = "db_name"
)
И да, я уже проверил, что у меня установлено только mysql-connector-python
.
Я был бы очень рад, если бы вы могли мне помочь, так как это последний этап подготовки моей заявки к отправке.
Заранее спасибо!
После того, как я не смог найти ответ на свою проблему, я просто переключился на Postgres и использовал соответствующий драйвер Python. Теперь это работает!
После большого стресса я решил установить более старую версию mysql-connector-python с этого сайта https://downloads.mysql.com/archives/c-python/
Я установил 8.0.20 и пока работает. протестируйте позже и проверьте. У меня была такая же ошибка в течение нескольких недель.
Единственная разница с вами в том, что я использовал не pyinstaller, а файл CX_Freeze.
создать минимальный воспроизводимый пример