pymysql插入和查询mysql中文编码设置

本文介绍如何在CentOS 7环境下配置MySQL 5.7.22以支持UTF-8编码,并展示了使用Python 3.6及pymysql库进行数据库操作的方法。包括设置MySQL配置文件、重启服务、验证设置、以及pymysql读写数据库时的编码处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

环境:

centos7+mysql5.7.22+pythen3.6+pymysql


设置mysql编码:

--在 [mysql]  标签下加上一行

default-character-set = utf8

 

--在 [mysql.server]标签下加上一行

default-character-set = utf8

 

--在 [mysqld_safe]标签下加上一行

default-character-set = utf8

 

--在 [client]标签下加上一行

default-character-set = utf8


重启服务:service mysql restart

查看设置结果:show variables like "%character%";

 

pymysql设置:

在往数据库中写入时

连接时加入charset='utf8'字段

 

读数据库中的数据:

连接时不加charset字段;

但要加:

cur.execute('SET CHARACTER SET utf8;')

或者

cur.execute('SET NAMES utf8;')

 

代码实例:

写数据库时在connect中加入charset='utf8'字段;

#-*- coding=utf-8 -*-

import pymysql

#读数据库:

db = pymysql.connect(host='127.0.0.1',user='root',password='1234',db='test_db',port=3306)



cur = db.cursor()



sql = """select * from test"""



#cur.execute('SET NAMES utf8;')

cur.execute('SET CHARACTER SET utf8;')

try:

    cur.execute('SET character_set_connection=utf8;')

    ex = cur.execute(sql)

    books = cur.fetchmany(ex)

    for book in books:

        print(book[1])

except Exception as e:

    raise e

finally:

    db.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值