执行mysql,Incorrect string value异常处理办法

先贴一段异常代码

SequelizeDatabaseError: Incorrect string value: '\xE8\x8C\x83\xE5\xBE\xB7...' for column 'content' at row 1
1|react-blog          |       at Query.formatError (/home/admin/blog/study-notes/server/node_modules/sequelize/lib/dialects/mysql/query.js:247:16)
1|react-blog          |       at Query.handler [as onResult] (/home/admin/blog/study-notes/server/node_modules/sequelize/lib/dialects/mysql/query.js:68:23)
1|react-blog          |       at Query.execute (/home/admin/blog/study-notes/server/node_modules/mysql2/lib/commands/command.js:30:14)
1|react-blog          |       at Connection.handlePacket (/home/admin/blog/study-notes/server/node_modules/mysql2/lib/connection.js:455:32)
1|react-blog          |       at PacketParser.onPacket (/home/admin/blog/study-notes/server/node_modules/mysql2/lib/connection.js:73:18)
1|react-blog          |       at PacketParser.executeStart (/home/admin/blog/study-notes/server/node_modules/mysql2/lib/packet_parser.js:75:16)
1|react-blog          |       at Socket.<anonymous> (/home/admin/blog/study-notes/server/node_modules/mysql2/lib/connection.js:80:31)
1|react-blog          |       at Socket.emit (events.js:198:13)
1|react-blog          |       at addChunk (_stream_readable.js:288:12)
1|react-blog          |       at readableAddChunk (_stream_readable.js:269:11)
1|react-blog          |       at Socket.Readable.push (_stream_readable.js:224:10)
1|react-blog          |       at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

在执行插入数据库时,如果插入中文就会报如上错误,在网上搜了下,是因为charset设置的问题
这里我先执行了show create table article; 查看我当前的数据, 其中CHARSET为lantin1

CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) COLLATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET= latin1

修改CHARSET类型,alter table mytable convert to character set utf8mb4 collate utf8mb4_bin;
再次执行sql时,就完美解决了。

posted @ 2019-08-05 21:04  inaruto  阅读(798)  评论(0编辑  收藏  举报