解决mysql编码格式问题

本文详细介绍了在MySQL中插入中文数据时遇到的乱码问题及其解决方案。通过调整MySQL的编码格式,包括修改my.ini配置文件,以及使用SQL命令更改已存在的数据库、表和字段的编码,确保中文数据正确存储。

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

在mysql所建立的表中插入中文数据出现错误,

报错Incorrect string value:  '\xE6\x89\x8B\xE6\x9C\xBA'  for column   'cname'  at  row 1;

错误原因是在字段'cname'字段插入中文数据,因为建表时没有注明编码格式,则默认使用mysql默认编码latin1(瑞典)

这时为了在表中出入中文数据,需要更改mysql编码格式。

 

首先我们在mysql安装目录下找到my_default.ini配置文件,将其复制一份重命名为my.ini,在其中加入以下配置

[client]
default-character-set = utf8

[mysqld]

default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci

 

client是mysql客户端编码格式设置,这里把所有编码格式变为utf8.

尽管把mysql编码格式改了,以前已经创建的数据库、表以及表中字段使用的编码还是latin1

这里可以使用show create database | table  database_name/table_name查看数据库及表格创建时的编码格式

这时我们要修改以前创建数据库表时用的默认编码:

修改数据库的编码格式

alter database buybackshop(数据库名) character set utf8;

修改表的编码格式

alter table category(表名) character set utf8;

修改表字段的编码格式

alter table category(表名) modify cname(表中字段名) varchar(50) character set utf8;

 

通过这几条命令可以把以前已经创建的数据库、表、字段编码格式更改。

一般避免出现编码问题,创建数据库以及表的时候,写sql语句都会加上编码格式的设置

如:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值