python连接mysql并让mysql支持中文

本文介绍了在Ubuntu上安装MySQL的过程,并详细讲解了如何使用Python的MySQLdb模块连接MySQL数据库。同时,针对MySQL默认编码不支持中文的情况,提出了两种解决方案:创建表时指定`character set = utf8`,以及修改已有表的编码设置。在Python连接MySQL时,也需要设置正确的编码格式以确保中文数据的正常存储。

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

ubuntu下安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client

  在安装过程中会提示确认输入YES,设置 root 用户密码(之后也可以修改)等,稍等片刻便可安装成功。

  之后可以使用如下命令打开mysql:

sudo service mysql start
mysql -u root -p    #如果没有密码不需要输入 -p

python连接mysql

  首先安装MySQLdb,MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。

sudo apt-get install python-mysqldb  #python2
sudo apt-get install python3-mysqldb  #python3

  尝试导入MySQLdb模块检测是否安装成功

import MySQLdb

  接下来开始连接操作数据库

import MySQLdb

# 打开数据库连接。
db = MySQLdb.connect("localhost","user","password","db_name" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

#执行sql语句
#创建数据表
#cursor.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#插入一条数据
#cursor.execute("insert into student values('2','Tom','3 year 2 class','9')")

#一次插入多条记录
#executemany()方法可以一次插入多条值,执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。
sqlExp = "insert into student values(%s,%s,%s,%s)"
cursor.executemany(sqlExp,[
    ('3','Tom','1 year 1 class','6'),
    ('3','Jack','2 year 1 class','7'),
    ('3','Yaheng','2 year 2 class','7'),
    ])

#获得表中的多条数据并打印出来
#获得表中有多少条数据
aa = cursor.execute("select * from student")

#打印表中的多少数据
info = cursor.fetchmany(aa)    #获得多条数据
for i in info:
    print(i)

#修改查询条件的数据
#cursor.execute("update student set class='3 year 1 class' where name = 'Tom'")

#删除查询条件的数据
#cursor.execute("delete from student where age='9'")

#关闭数据库游标
cursor.close()
#提交事务。没有这一步数据库内容不会改变
db.commit()
#关闭数据库连接
db.close()

  mysql默认的编码方式不支持中文。如何使mysql支持中文?

  1、在每次创建表的时候都在最后加上

     character set = utf8

  就可以很好的支持中文。

create table entries2 (
       id     int auto_increment, 
       title  text,
       content  text,
       posted_on  datetime,
       primary key (id)   
) character set = utf8;

  2、修改已经有的table的编码,当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:

alter table table_name convert to character set utf8;

  python在连接mysql的时候也要设置编码格式:

# 打开数据库连接。
db = MySQLdb.connect("localhost","user","password","db_name, charset='utf8'" ) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值