MySQL5.6.37无法插入中文怎么办?看这里

来源:互联网 发布:2016淘宝新手还能做吗 编辑:程序博客网 时间:2024/06/08 02:32

今天用hibernate向MySQL里插入中文发现乱码,后来连插入中文都插不了了,插入中文报错,插入英文没问题,百度了一下午,入了不少坑,现在来总结一下,帮助需要帮助的朋友们轻松解决问题,前人栽树后人乘凉。

管理员方式打开cmd,输入下面代码进入mysql:

mysql -u用户名 -p密码

接下来输入下面代码查看编码格式:
mysql> show variables like '%char%';


返回结果:
+--------------------------+----------------------------+  | Variable_name            | Value                      |  +--------------------------+----------------------------+  | character_set_client     | utf8                       |  | character_set_connection | utf8                       |  | character_set_database   | latin1                     |  | character_set_filesystem | binary                     |  | character_set_results    | utf8                       |  | character_set_server     | latin1                     |  | character_set_system     | utf8                       |  | character_sets_dir       | /usr/share/mysql/charsets/ |  +--------------------------+----------------------------+  
可以发现有两个格式是latin1,我们需要将这两处改为 utf8

到你的mysql根目录下,有一个my-default-ini文件,新建一个my.ini文件,将my-default-ini里的内容复制到新建的my.ini文件中并在[mysqld]填加以下代码后关闭

character-set-server=utf8 collation-server=utf8_general_ci

Ps:在旧版本里是向 [mysqld]中添加 
default-character-set=utf8


向 [client] 中添加
default-character-set=utf8

如果在5.6.37中这样添加的话,mysql 会跑不起来


在cmd中重启mysql,再次输入以下代码查看是否更改成功

mysql> show variables like '%char%';



若返回以下页面说明更改成功

+--------------------------+----------------------------+  | Variable_name            | Value                      |  +--------------------------+----------------------------+  | character_set_client     | utf8                       |  | character_set_connection | utf8                       |  | character_set_database   | utf8                       |  | character_set_filesystem | binary                     |  | character_set_results    | utf8                       |  | character_set_server     | utf8                       |  | character_set_system     | utf8                       |  | character_sets_dir       | /usr/share/mysql/charsets/ |  +--------------------------+----------------------------+  

这时使用mysql添加中文你会发现还是添加不了,真是让人头疼,本人以为是更改编码格式时出现了问题,又尝试了输入了什么

set character......各种代码来修改编码格式,但是还是无济于事,浪费了两个多小时的时间我发现了真相。

已存在的表和表空间还是插入不了中文,重新建表空间和表,中文插入成功!看到结果差点哭出了声

原创粉丝点击