ubuntu下mysql插入中文错误问题:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE8\x82\x96\xE7\x

ubuntu下mysql插入中文错误问题:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE8\x82\x96\xE7\x

这个问题困扰了我很久,碰到这个问题的小伙伴一起来看看吧:

使用命令先查看当前mysql的编码情况

show variables like '%character%';

我的查出来是这样的:

mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

可以看到charcter_set_server的编码是latin1这样是不能插入中文的(只看这个就行了,这个是最重要的,别的都不用去理会)。

修改mysql配置文件

(过程可能有冗余的步骤,但是我这样配置可以成功)进入到/etc/mysql,在my.cnf下插入

[client] 
default-character-set = utf8mb4 
[mysql] 
default-character-set = utf8mb4 
[mysqld] 
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

在/etc/mysql/conf.d/mysql.cnf插入

default-character-set = utf8mb4

在/etc/mysql/mysql.conf.d/mysqld.cnf的[mysqld]下插入

character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

再次提醒哦,上面的步骤可能有重复,如果有大神看到的话,希望能够指点哪里重复了,嘻嘻!!

重启mysql服务

终端命令:

sudo service mysql restart

重启之后使用命令查看编码情况:

show variables like '%character%';

得到

mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)


好的!!这样就修改成功啦。

最后但是最重要的是,把已经建立好的数据库和表格全部重新建吧,如果你怕麻烦的话!!!!!

当然如果你不怕麻烦,那就用alert一个个去修改编码吧!!

第一次写博客,写的不好的地方,希望大家指出,共勉!!!

你可能感兴趣的:(mysql问题)