_mysql_exceptions.Warning: Incorrect string value: '\xE5\x95\x86\xE5\x93\x81...' (mysql设置utf8字符集)

来源:互联网 发布:js函数call 编辑:程序博客网 时间:2024/04/29 03:41

今天遇到一个问题:_mysql_exceptions.Warning: Incorrect string value: ‘\xE5\x95\x86\xE5\x93\x81…’ for column ‘name’ at row 1
这个问题的解决办法就在于mysql数据库的字符集设置。

网上有好多关于这方面的说明,我也尝试过,但是效果不好,说的有点乱,现在我就详细整理了一下,以下的所有步骤,没有废话,都要按照步骤一步一步来,顺序不能乱,谨记。

1.停止mysql服务

sudo /etc/init.d/mysql stop

2.修改配置文件

sudo vim /etc/mysql/my.cnf

在[mysqld]下添加,default-character-set=utf8,至于[client]下,我是没有添加也可以,如果你的不可以的话,[client]下也加上吧。
这里写图片描述

3.查看数据里字符集
在终端进入数据库,输入以下命令:

show variables like '%char%';

如果看到的是如下图的话,你就不用再做其他操作。
这里写图片描述
如有不是,请修改。命令举例如下:

set character_set_database=utf8;

4.启动服务

sudo /etc/init.d/mysql start

5.再查看
执行步骤3,看到都无问题,说明你已经搞定这件事了,就不会再报上边的错了。

备注:
Emoji表情符号录入MySQL数据库报错的解决方案

character_set_client=utf8mb4character_set_connection=utf8mb4character_set_database=utf8mb4character_set_filesystem=binarycharacter_set_results=utf8mb4character_set_server=utf8mb4character_set_system=utf8

㈠ 原因
普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点
㈡ 限制
需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错。

0 0
原创粉丝点击