ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
时间: 2023-07-06 16:43:42 浏览: 172
这个错误是因为在创建表b时,name字段的字符集为默认的latin1字符集,无法存储中文字符。解决这个问题,可以将表b的字符集改为utf8或utf8mb4字符集。
以下是解决这个问题的具体步骤:
1. 进入Mah_data库
首先,我们需要进入Mah_data库。可以使用以下命令:
```
mysql -u root -p
USE Mah_data;
```
2. 删除表b
接下来,我们需要删除之前创建的表b。可以使用以下命令:
```
DROP TABLE b;
```
3. 创建表b并指定字符集
重新创建表b,这次需要指定字符集为utf8或utf8mb4。可以使用以下命令:
```
CREATE TABLE b (
id INT PRIMARY KEY,
name VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
age INT
);
```
其中,CHARACTER SET指定字符集为utf8mb4,COLLATE指定排序规则为utf8mb4_unicode_ci,这个排序规则支持中文字符。
4. 插入数据
重新插入数据,这次可以插入中文字符了。可以使用以下命令:
```
INSERT INTO b VALUES
(1, '张三', 18),
(2, '李四', 20),
(3, '王五', 22),
(4, '赵六', 25),
(5, '陈七', 21),
(6, '周八', 19),
(7, '韩九', 23),
(8, '钱十', 24),
(9, '孙十一', 26),
(10, '吴十二', 27);
```
5. 使用mysqldump备份表b
最后,我们可以使用mysqldump命令备份表b。备份命令如下:
```
mysqldump -u root -p Mah_data b > b.sql
```
其中,-u指定用户名,-p指定密码,Mah_data是要备份的数据库名称,b是要备份的表名,> b.sql表示将备份结果输出到b.sql文件中。
至此,我们解决了ERROR 1366 (HY000): Incorrect string value的问题,并完成了进入Mah_data库中,再创建一个表b,插入10条数据,数据内容使用中文姓名,使用mysqldump只备份b表的所有步骤。
阅读全文