Python 操作 MySQL 字符集的问题

作者: hedeqiang

发布时间: 2020-05-05 21:36:22

使用 Python 操作 MySQL 有不少库供我们选择,比如 MySQLdb、mysqlclient、PyMySQL、peewee 和 SQLAIchemy 等。我使用的是 mysql-connector,它是 MySQL 官方提供的驱动器,用来给后端语言,比如 Python 提供连接。下面我们看下如何用 Python 使用 mysql-connector,以完成数据库的连接和使用。

首先安装 mysql-connector。在使用前,你需要先使用下面这句命令进行安装:

pip3 install mysql-connector

使用

# -*- coding: UTF-8 -*-
import mysql.connector
# 打开数据库连接
db = mysql.connector.connect(
       host="localhost",
       user="root",
       passwd="XXX", # 写上你的数据库密码
       database='wucai', 
       auth_plugin='mysql_native_password'
)
# 获取操作游标 
cursor = db.cursor()
# 执行SQL语句
cursor.execute("SELECT VERSION()")
# 获取一条数据
data = cursor.fetchone()
print("MySQL版本: %s " % data)
# 关闭游标&数据库连接
cursor.close()
db.close()

我插入了一条带有表情的字符,突然插不进去。出现如下错误: file

很明显,我们知道要想存表情数据库字符集必须是 utf8mb4 的字符集,但是我就是 utf8mb4 呀? file

最后整了半天原来创建 MySQL 连接的时候需要指定字符集

db = mysql.connector.connect(
        host="140.143.190.184",
        user="root",
        passwd="20140709ZHENROOT.",
        database='geek_test',
        auth_plugin='mysql_native_password',
        charset="utf8mb4")

唉,往我改了半天 字符集,表、字段都改了。。。

关于极客返利

极客返利 是由我个人开发的一款网课返利、返现平台。包含 极客时间返现、拉勾教育返现、掘金小册返现、GitChat返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。

https://geek.laravelcode.cn

https://geek.idaka.ink

版权许可

本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载无需与我联系,但须注明出处,注明文章来源 Python 操作 MySQL 字符集的问题