【MYSQL】ERROR 1366 (HY000)

1.问题

mysql> insert into tab_keyWords_comments(abbreviation,comment)VALUES('PA','Programming Assignment,编程作业');
ERROR 1366 (HY000): Incorrect string value: '\xE7\xBC\x96\xE7\xA8\x8B...' for column 'comment' at row 1

2. 对我来说有效的解决方法

               目的                         语句
查看数据库编码show variables like 'char%';
查看数据表字段编码 show full columns from tablename;
更改mysql服务器的编码为utf8SET character_set_server = utf8; 
更改数据库连接的编码为utf8SET character_set_connection = utf8;
更改数据库编码为utf8SET character_set_database = utf8;
更改某个数据表的编码为utf8alter table tablename convert to character set utf8;
查看这个数据库中的表show tables;
查看数据库配置文件在哪locate my.cnf (linux命令)
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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> show full columns from tab_keyWords_comments;
+--------------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field        | Type         | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
+--------------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| indexNum     | int(11)      | NULL              | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| abbreviation | varchar(20)  | latin1_swedish_ci | NO   | UNI | NULL    |                | select,insert,update,references |         |
| comment      | varchar(200) | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
+--------------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
3 rows in set (0.00 sec)

mysql> alter table tab_keyWords_comments convert to character set utf8;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show full columns from tab_keyWords_comments;
+--------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| Field        | Type         | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |
+--------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| indexNum     | int(11)      | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| abbreviation | varchar(20)  | utf8_general_ci | NO   | UNI | NULL    |                | select,insert,update,references |         |
| comment      | varchar(200) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |
+--------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
3 rows in set (0.00 sec)

mysql> insert into tab_keyWords_comments(abbreviation,comment)VALUES('PA','Programming Assignment,编程作业');
Query OK, 1 row affected (0.00 sec)

mysql> select * from tab_keyWords_comments;
+----------+--------------+-------------------------------------+
| indexNum | abbreviation | comment                             |
+----------+--------------+-------------------------------------+
|        1 | PA           | Programming Assignment,编程作业     |
+----------+--------------+-------------------------------------+
1 row in set (0.00 sec)

mysql 查看当前使用的配置文件my.cnf的方法

3.我的小结

据观察,其实不一定需要把character相关的几个编码一定改成gbk,但是一定要做到的就是数据库的某
些编码格式与表的字段的编码格式是一致的,都改成utf8也是可以的,只要一致就可以.
(JUST MY OPINION)

具体是什么要和表的编码格式一致还需要做一定的探究,目前我这个在我的环境上算是治标了,问题原因
还需要进一步
总结:
(1)各个编码会影响什么问题?
(2)为什么会导致这种错误的发生?
(3)什么编码保持就只就可以不发生这个问题了?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值