python mysql 连接器不支持字符集“utf8”

Vee*_*een 16 python mysql mysql-connector-python python-sql

我正在尝试使用 MySQL 连接器将我的数据库连接到 python 项目。

\n

但是,当使用下面的代码时,

\n
import mysql.connector\n\nmydb =  mysql.connector.MySQLConnection(\n  host="localhost",\n  user="veensew",\n  password="%T5687j5IiYe"\n)\n\nprint(mydb)\n
Run Code Online (Sandbox Code Playgroud)\n

我遇到以下错误\xef\xbc\x9a

\n
\n

mysql.connector.errors.ProgrammingError:不支持字符集“utf8”

\n
\n

我试图找出为什么会发生这种情况,但我总是遇到同样的错误。

\n

MySQL 连接器版本 - 8.0.30

\n

我将不胜感激任何帮助。提前谢谢您!

\n

Nik*_*las 33

我遇到了同样的问题。8.0.30 版本中显然对 utf8_ 排序规则的处理方式进行了一些更改(请参阅MySQL Connector 发行说明)。我安装了 8.0.29 版本,它解决了我的问题。

pip3 install mysql-connector-python==8.0.29
Run Code Online (Sandbox Code Playgroud)

  • 我不会推荐这个......你将坚持使用版本,这将成为以后其他问题的根源。 (2认同)

Ric*_*ain 10

如果您使用MySQL 连接器连接MariaDB 服务器,则必须切换到正确的连接器:

  1. 安装 MariaDB 连接器:
$ pip3 install mariadb
Run Code Online (Sandbox Code Playgroud)
  1. 更改您的代码以添加import mariadbmariadb.connect。完成此步骤后,您的代码应如下所示:
import mariadb
    
mydb =  mariadb.connect(
  host="localhost",
  user="veensew",
  password="%T5687j5IiYe"
)

print(mydb)
Run Code Online (Sandbox Code Playgroud)

瞧:)

/!\ 不要降级到较旧的 MySQL 连接器,有一天你会遇到更多问题...