【踩坑】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:指定默认字符编码集

utf8gbk

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——码之魂