Набор символов «utf8» не поддерживается в соединителе python mysql

Я пытаюсь подключить свою базу данных к проекту 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 поддерживает динамическую типизацию, что облегчает разработку.


2
1 269
3

Ответы:

Вы можете попробовать закодировать свой пароль с помощью ("%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 (хотя на самом деле это не вариант для большинства людей).