博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLSTATE[HY000]: General error: 1366 Incorrect string value
阅读量:5251 次
发布时间:2019-06-14

本文共 1113 字,大约阅读时间需要 3 分钟。

在Laravel项目的 storages/logs/Laravel.log看到的错误信息片段:

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x91\x8B\xF0\x9F...' for column 'name' at row 1

出错原因:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。

解决方法:

#1.检查数据表所有字段的状态mysql> SHOW FULL COLUMNS FROM tdb_goods;
#2.发现collatioin项非utf8,需要进行修改,使用如下的语句mysql> alter table tdb_goods change goods_name name varchar(100) character set utf8 collate utf8_unicode_ci not null default '';
#3.检查数据表所有字段的状态mysql> SHOW FULL COLUMNS FROM tdb_goods;
mysql> select * from tdb_goods\g

mysql语句的\g等同于;,\G:将查询到的横向表格纵向输出,方便阅读


未进行修改my.cnf,下面内容可跳过。记录自己的了解和尝试

参考别人的博文,说是 mysql的配置sql-model不正确导致的,需要将 my.cnf中的sql-model中的STRICT_TRANS_TABLES删除

STRICT_TRANS_TABLES(存储引擎启用严格模式,非法数据值被拒绝)

我的mysql配置文件是在/etc/my.cnf

sudo cp /etc/my.cnf /etc/my.cnf_bak190628sudo vim /etc/my.cnf

[mysqld]sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

改为

[mysqld]sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

删除了STRICT_TRANS_TABLES,然后重启 mysql

References

转载于:https://www.cnblogs.com/fsong/p/11259046.html

你可能感兴趣的文章
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
stap-prep 需要安装那些内核符号
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>
redis cli命令
查看>>
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>