【踩坑】MySQL报错
前言
MySQL报错
报错
- 报错:
Incorrect string value: '\xE5\xA4\x8D\xE6\x9F\xA5...' for column '' at row 1
原因
- 字符编码集不匹配
修改数据表的字符编码集
<table_name>:数据表名
1 | ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4; |
报错
- MySQL在创建表时,指定某个timestamp类型的默认值为
0000-00-00 00:00:00时,报错:ERROR 1067 (42000): Invalid default value for 'order_time'
原因
- MySQL 5.6 以后
sql_mode中多了一条NO_ZERO_DATE(不允许时间值全部为0)
解决问题
- 重新配置
sql_mode让它支持全部为0的时间值
1 | SET sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; |
报错
- 报错:
data too long for column
原因
- 字符编码集有问题
解决问题
- 与数据库建立连接时指定字符编码集
--default-character-set:指定默认字符编码集
utf8、gbk
1 | mysql -uroot -p --default-character-set=utf8 |
报错
- MySQL数据库名有横线时报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-vue' at line 1
解决问题
- 在创建数据库时将数据库名用``括起来
1 | CREATE DATABASE `ry-vue` |
完成
参考文献
CSDN——suolongge
CSDN——linmengmeng_1314
简书——神经电泳实现师
CSDN——Dreamboy_w
简书——丶Rainbow丨
博客园——林宁
CSDN——码之魂