Я пытаюсь подключить свою базу данных к проекту Python с помощью соединителя MySQL.
Однако при использовании приведенного ниже кода
import mysql.connector
mydb = mysql.connector.MySQLConnection(
host = "localhost",
user = "veensew",
password = "%T5687j5IiYe"
)
print(mydb)
Я сталкиваюсь со следующей ошибкой:
mysql.connector.errors.ProgrammingError: Character set 'utf8' unsupported
Я пытался выяснить, почему это происходит, и я всегда получаю ту же ошибку.
Версия соединителя MySQL — 8.0.30
Буду признателен за любую помощь. Заранее благодарю!
🤔 А знаете ли вы, что...
Python поддерживает динамическую типизацию, что облегчает разработку.
Вы можете попробовать закодировать свой пароль с помощью ("%T5687j5IiYe").encode("utf-8")
.
Я столкнулся с той же проблемой. По-видимому, в версии 8.0.30 были внесены некоторые изменения в способ обработки сопоставлений utf8_ (см. Примечания к выпуску соединителя MySQL). Я установил версию 8.0.29, которая решила проблему для меня.
pip3 install mysql-connector-python==8.0.29
Я подумал, что вставлю здесь свои пять копеек. однако могу ошибаться...
Я считаю, что эта ошибка не появится в версиях MYSQL выше 5.5.3, это потому, что был введен набор символов utf8mb4.
https://downloads.mysql.com/docs/mysql-5.5-relnotes-en.pdf
The utf8mb4 character set has been added. This is similar to utf8, but its encoding allows up to four bytes per character to enable support for supplementary characters.
Однако, если вы используете версии MySQL ниже 5.5.3 Версия коннектора Python (8.0.30) попытается использовать псевдоним utf8 для utf8mb4 (которого еще не существует для версий ниже 5.5.3), как указано в его примечаниях к выпуску.
https://dev.mysql.com/doc/relnotes/connector-python/en/news-8-0-30.html
Changes in MySQL Connector/Python 8.0.30 (2022-07-26, General
Availability)..This also makes utf8 an alias to utf8mb4. ..
Из-за этой проблемы с псевдонимом произойдет следующая ошибка
mysql.connector.errors.ProgrammingError: Character set 'utf8' unsupported
Что на самом деле означает ошибка, я считаю
mysql.connector.errors.ProgrammingError: Character set 'utf8mb4' unsupported
Для решения этой проблемы я бы сказал, подождите предыдущей версии, как это предлагается в ответе выше, или обновите mysql выше 5.5.3 (хотя на самом деле это не вариант для большинства людей).