我试图使用MySQL连接器将数据库连接到python项目。
但是,当使用下面的代码时,
import mysql.connector
mydb = mysql.connector.MySQLConnection(
host="localhost",
user="veensew",
password="%T5687j5IiYe"
)
print(mydb)我遇到以下错误:
mysql.connector.errors.ProgrammingError:字符集'utf8‘不受支持
我试图找出为什么会发生这种情况,而且我总是会遇到同样的错误。
MySQL连接器版本- 8.0.30
我很感谢你的帮助。谢谢你的进阶!
发布于 2022-08-05 19:41:15
我遇到了同样的问题。在8.0.30版中,utf8_排序规则的处理方式显然有了一些变化(参见MySQL连接器发布说明)。我安装了8.0.29版本,为我解决了这个问题。
pip3 install mysql-connector-python==8.0.29发布于 2022-09-01 09:26:29
如果使用MySQL连接器连接MariaDB服务器,则必须切换到正确的连接器:
$ pip3 install mariadbimport mariadb和mariadb.connect。在这个步骤之后,您的代码应该如下所示:import mariadb
mydb = mariadb.connect(
host="localhost",
user="veensew",
password="%T5687j5IiYe"
)
print(mydb)和瞧:)
/!\不要降级为旧的MySQL连接器,总有一天你会遇到更多的问题.
发布于 2022-08-16 10:59:56
我想我应该把我的两分钱放这儿。但我可能错了..。
我相信这个错误不会出现在高于5.5.3的MYSQL版本上,这是因为引入了utf8mb4字符集。
https://downloads.mysql.com/docs/mysql-5.5-relnotes-en.pdf
添加了utf8mb4字符集。这与utf8类似,但它的编码允许每个字符最多4个字节,以支持补充字符。
但是,如果您运行的MySQL版本低于5.5.3,Python连接器版本(8.0.30)将尝试将utf8别名为utf8mb4 (对于版本小于5.5.3的版本,utf8mb4显然还不存在),正如其发布说明中所述。
https://dev.mysql.com/doc/relnotes/connector-python/en/news-8-0-30.html
MySQL连接器/Python8.0.30中的更改(2022-07-26,一般情况) 可得性) ..This还使utf8成为utf8mb4的别名。。。
由于这个别名问题,将发生以下错误
mysql.connector.errors.ProgrammingError:字符集'utf8‘不受支持
这个错误真正意味着我相信
mysql.connector.errors.ProgrammingError:字符集'utf8mb4‘不受支持
为了解决这个问题,我想说的是,等待上面的答案所建议的早期版本,或者在5.5.3之上升级mysql (虽然对大多数人来说并不是一种选择)。
https://stackoverflow.com/questions/73244027
复制相似问题