mysql 報錯:ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD‘ for column ‘name‘ at row 1

Xiaobai_kiss發表於2020-10-11

ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘name’
at row 1

資料庫字符集問題,檢視資料庫狀態:
mysql> status;

mysql Ver 14.14 Distrib 5.6.12, for Win32 (x86)

Connection id: 25
Current database: information_schema
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.6.12 MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 8 hours 54 min 47 sec

Threads: 1 Questions: 372 Slow queries: 0 Opens: 108 Flush tables: 1 Open t
ables: 62 Queries per second avg: 0.011

我要使用的庫test的字符集是latin1,該字符集不支援中文字元。
檢視錶引擎狀態:
mysql> show create table ttt;
±------±----------------------------------------------------------------------
-----------------------------------------------------------------------+
| Table | Create Table
|
±------±----------------------------------------------------------------------
-----------------------------------------------------------------------+
| ttt | CREATE TABLE ttt (
id int(11) NOT NULL,
name varchar(20) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
±------±----------------------------------------------------------------------
-----------------------------------------------------------------------+
修改表字符集:
mysql> alter table ttt character set utf8;
Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table ttt;
±------±----------------------------------------------------------------------

----------+
| Table | Create Table

     |

±------±----------------------------------------------------------------------

----------+
| ttt | CREATE TABLE ttt (
id int(11) NOT NULL,
name varchar(20) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
±------±----------------------------------------------------------------------

----------+
修改欄位字符集:
mysql> alter table ttt modify name varchar(20) character set utf8;
Query OK, 0 rows affected (1.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table ttt;
±------±----------------------------------------------------------------------
---------------------------------------------------------------------+
| Table | Create Table
|
±------±----------------------------------------------------------------------
---------------------------------------------------------------------+
| ttt | CREATE TABLE ttt (
id int(11) NOT NULL,
name varchar(20) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
±------±----------------------------------------------------------------------
---------------------------------------------------------------------+
1 row in set (0.02 sec)

OK!

相關文章