mysql 在使用时出现编码错误的问题

Posted zhanghuachuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 在使用时出现编码错误的问题相关的知识,希望对你有一定的参考价值。

mysql的安装过程中,出于一些原因,安装完成后的MySQL默认编码方式是Latin1,不是中英文兼容性比较好的utf8编码方式,那么,在操作过程中会输入中文将出现一系列的报错

just like this:

ERROR 1366 (HY000): Incorrect string value: ‘xE6x96xB0xE9x97xBB...‘ for column ‘title‘ at row1

 

如何解决这令新手头疼的错误呢?

很简单,可以先查看一下mysql的编码,在MySQL命令行输入:show variables like ‘character%‘;

回车,你会看到MySQL的编码:

技术图片

 

我的是修改过后的编码,如果没修改,很多编码是Latin1;这也是导致错误的原因

修改方法

在windows中:

首先打开MySQL的安装文件夹,用windows的记事本打开其中的My.ini文件进行编辑:

技术图片

 

在记事本中用查找功能(CTRL+f)找到所有的含“character-set”的配置项,将其右端的值统一改成utf8后保存退出记事本;(记住不要改成utf-8)

最后重启服务器即可

 

 

在Linux中:

在/etc/mysql/my.cnf配置文件中进行更改:

技术图片

 

 

更改如下内容:(前两行配置文件本来就有)

技术图片

 

提示:在vi编辑器中要强行修改只读文件的内容,最后保存时可能遇到无法保存退出的情况,在命令模式下输入:":w !sudo tee %"就可以保存退出啦 

最后重启服务器就可以了

因为之前创建数据库使用的Latin1,如果方便的话可以删除重新建一个,这样它的默认编码就是utf8,否则使用alter命令动态修该表的编码方式也可以:

命令如下:

ALTER TABLE ‘表名‘ DEFAULT CHARACTER SET utf8;

最后就没有问题啦

2019-10-12

以上是关于mysql 在使用时出现编码错误的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用一个热编码器时出现gridsearchCV错误

在 Linux 上使用 Apache Commons Compression 压缩文件时出现编码错误

servlet从mysql中取数据时出现的汉字编码问题

在云功能上使用 Firestore SDK 时出现错误:无法编码类型

对函数进行字节编码时出现分段错误? [复制]

运行选定的编码生成器时出现错误:'包恢复失败。没有详细错误