MySQL异常 Incorrect string value: '\xE8\xB5\xB5\xE6\xB4\x8B' for column at row的解决方案

在Ubuntu 17.04及以下版本中,安装MySQL 5.7遇到插入中文报错。问题源于默认字符集不支持中文。解决方案包括在创建表时指定utf-8编码或修改配置文件`/etc/mysql/my.cnf`添加编码设置。然而,对于Ubuntu 18.04,推荐直接安装MySQL 8.0,因为它能更好地适配。详细步骤见相关博文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文适合Ubuntu 17.04及其以下版本,不适合Ubuntu 18.04版本。

Ubuntu 18.04版本请直接根据下篇博文安装MySQL 8.0。
《Ubuntu18.04 下解决MySQL不能输入中文的问题》


之前我们博文中的教程安装的是MySQL 5.7版本,发现其默认字符集如下:

在这种情况下,我们进行数据表的插入操作中含有中文时,会存在 Incorrect string value: \xE6\x88\x91\xE6的错误,解决方案是设置utf8字符集,需要修改配置文件

网上的其他解决方案五花八门,很多方法尝试过都是错误的,究其原因就是因为没有声明Ubuntu版本,因为MySQL 5.7版本对于不同的Ubuntu版本的适配是不同的。

解决方案有下面几种:
1、MySQL建表结构的时候指定编码格式utf-8
如下:


                
这个错误信息通常出现在向数据库插入包含非ASCII字符(如中文)时,数据库的字符集不支持这些字符。具体来说,`Incorrect string value` 错误表示你试图插入的字符串值与目标列的字符集不匹配。 以下是解决这个问题的几种方法: 1. **检查数据库字符集**: 确保你的数据库和表使用支持中文的字符集,如 `utf8mb4`。你可以使用以下SQL语句来检查和修改字符集: ```sql -- 检查数据库字符集 SHOW VARIABLES LIKE 'character_set_database'; -- 修改数据库字符集 ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; -- 检查表字符集 SHOW TABLE STATUS WHERE Name = 'your_table_name'; -- 修改表字符集 ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **检查连接字符集**: 确保你的数据库连接使用正确的字符集。你可以在连接字符串中指定字符集,例如: ```python # 对于MySQL连接 connection = mysql.connector.connect( host='your_host', user='your_user', password='your_password', database='your_database', charset='utf8mb4' ) ``` 3. **检查列的字符集**: 确保目标列使用支持中文的字符集。你可以使用以下SQL语句来修改列的字符集: ```sql ALTER TABLE your_table_name MODIFY typeName VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 通过以上步骤,你可以确保数据库和连接支持中文字符,从而避免 `Incorrect string value` 错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZY-JIMMY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值