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

从MySQL 5导入至MySQL 8时phpMyAdmin语法错误的解决方法

解决MySQL 5转MySQL 8时的CREATE TABLE语法错误

问题场景

从MySQL 5导出的数据库,通过phpMyAdmin导入MySQL 8时触发语法错误,报错信息如下:

You have an error in your SQL syntax; it seems the error is around: '(8000) NOT NULL DEFAULT '
{vm:vendorname}
{vm:vendoraddress}

', `' at line 7

对应的出错表创建语句片段:

CREATE TABLE `lcjg6_virtuemart_vendors_en_gb` (
  -- ... 其他字段 ...
  `vendor_letter_header_html` longtext(8000) NOT NULL DEFAULT '<h1>{vm:vendorname}</h1><p>{vm:vendoraddress}</p>',
  `vendor_letter_footer_html` longtext(8000) NOT NULL DEFAULT '<p>{vm:vendorlegalinfo}<br />Page {vm:pagenum}/{vm:pagecount}</p>',
  -- ... 其他字段 ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

错误原因

MySQL的longtext属于大文本类型,本身不需要指定长度参数(括号里的8000是多余的)。MySQL 5对这类语法错误兼容性较高,会自动忽略无效的长度参数;但MySQL 8启用了更严格的语法校验,直接判定这种写法非法。

修正方案

把所有longtext(8000)的写法改成longtext即可,修正后的完整CREATE语句如下:

CREATE TABLE `lcjg6_virtuemart_vendors_en_gb` (
  `virtuemart_vendor_id` int unsigned NOT NULL,
  `vendor_store_desc` text NOT NULL,
  `vendor_terms_of_service` text NOT NULL,
  `vendor_legal_info` text NOT NULL,
  `vendor_letter_css` text NOT NULL,
  `vendor_letter_header_html` longtext NOT NULL DEFAULT '<h1>{vm:vendorname}</h1><p>{vm:vendoraddress}</p>',
  `vendor_letter_footer_html` longtext NOT NULL DEFAULT '<p>{vm:vendorlegalinfo}<br />Page {vm:pagenum}/{vm:pagecount}</p>',
  `vendor_store_name` varchar(180) NOT NULL DEFAULT '',
  `vendor_phone` varchar(26) NOT NULL DEFAULT '',
  `vendor_url` varchar(255) NOT NULL DEFAULT '',
  `metadesc` varchar(400) NOT NULL DEFAULT '',
  `metakey` varchar(400) NOT NULL DEFAULT '',
  `customtitle` varchar(255) NOT NULL DEFAULT '',
  `vendor_invoice_free1` varchar(255) NOT NULL DEFAULT '',
  `vendor_invoice_free2` varchar(255) NOT NULL DEFAULT '',
  `vendor_mail_free1` varchar(255) NOT NULL DEFAULT '',
  `vendor_mail_free2` varchar(255) NOT NULL DEFAULT '',
  `vendor_mail_css` varchar(255) NOT NULL DEFAULT '',
  `slug` varchar(192) NOT NULL DEFAULT '',
  PRIMARY KEY (`virtuemart_vendor_id`),
  UNIQUE KEY `slug` (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

额外提示

如果导入时还有其他类似错误,检查所有TEXT类型(text/mediumtext/longtext)是否都被错误添加了长度参数,统一去掉即可。

内容的提问来源于stack exchange,提问作者Dilhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:25:18