修改mysql的数据编码格式

Posted 牛郑焜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改mysql的数据编码格式相关的知识,希望对你有一定的参考价值。

mysql中插入数据时出现

mysql> insert into user values ("1","李红","23","吉林长春","2");

ERROR 1366 (HY000): Incorrect string value: ‘\xE6\x9D\x8E\xE7\xBA\xA2‘ for column ‘name‘ at row 1

 因为该列中插入的是中文,所以要修改表user的编码格式

用alter table user default character set utf8;修改

用 show create table user;查询

mysql> alter table user default character set utf8;

Query OK, 0 rows affected (0.03 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

mysql> show create table user;

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table                                                                                                                                                                                                                                                        |

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| user  | CREATE TABLE `user` (

  `id` int(11) DEFAULT NULL,

  `name` char(16) CHARACTER SET latin1 DEFAULT NULL,

  `age` int(11) DEFAULT NULL,

  `address` char(32) CHARACTER SET latin1 DEFAULT NULL,

  `wage` tinyint(4) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.01 sec)

 

 发现name列,和address列仍是latin1的编码格式

用下列两行修改两列的编码格式

 alter table user change name name char(16) character set utf8;
alter table user change address address char(32) character set utf8;

 这样就可以了

以上是关于修改mysql的数据编码格式的主要内容,如果未能解决你的问题,请参考以下文章

用dbvis 工具连接mysql 数据库 怎么设置编码格式

mysql应该用啥编码格式储存在数据库里呢?

mysql中数据库与数据表编码格式的查看创建及修改

用dbvis 工具连接mysql 数据库 怎么设置编码格式

如何修改mssql数据库编码

mysql查看编码格式以及修改编码格式