You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入修改排序规则的SQL时提示#1064 character_set_client语法错误

错误原因

你遇到的1064语法错误根源是修改排序规则时,误删了CREATE TABLE语句末尾的语句结束分号,导致数据库无法正确识别语句边界,把后续条件注释里的SET character_set_client = @saved_cs_client内容当成了CREATE TABLE语句的一部分,最终解析失败。
另外你修改后的SQL还存在一个隐性兼容问题:你指定的排序规则utf8mb4_unicode_520_ci属于utf8mb4字符集,但语句里写的默认字符集是utf8(即utf8mb3,最多存储3字节的UTF-8字符),二者不匹配,就算补上分号也会触发字符集与排序规则不兼容的报错。

修复方案
  • 给CREATE TABLE语句的末尾补上缺失的分号,明确标识语句结束
  • 将表的默认字符集从utf8修改为utf8mb4,和你指定的utf8mb4_unicode_520_ci排序规则匹配

修复后可正常执行的完整SQL如下:

DROP TABLE IF EXISTS `migration_versions`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `migration_versions` (
  `version` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
  PRIMARY KEY (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

补充说明:语句里/*!40101 ...... */格式的内容是MySQL/MariaDB专属的条件执行注释,仅当数据库版本高于4.1.1时才会执行注释内的逻辑,本身不存在语法问题,之前的报错完全是前序语句缺失结束符导致的解析异常。

内容的提问来源于stack exchange,提问作者J. Scott Elblein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 23:00:17