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

今天用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......各种代码来修改编码格式,但是还是无济于事,浪费了两个多小时的时间我发现了真相。

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值