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

指定WITH PARSER ngram创建带FULLTEXT索引的表失败问题排查

解决XAMPP中MariaDB不支持ngram解析器的FULLTEXT索引问题

问题场景

  • 运行环境:Windows 10 + XAMPP 8.1.10,InnoDB存储引擎
  • 需求目标:创建包含FULLTEXT索引的表,通过ngram解析器实现中日韩等无空格语言的全文搜索
  • 报错情况:
    • 执行含WITH PARSER ngram的建表或ALTER TABLE命令时,PHPMyAdmin返回错误:#1128 - Function 'ngram' is not defined
    • 移除WITH PARSER ngram语句后,表和索引可正常创建,但无法启用ngram解析功能

问题根源

XAMPP 8.1.10默认集成的是MariaDB(即便界面显示为MySQL),而MariaDB暂不支持ngram全文解析器——该解析器是MySQL专属功能,专为处理中日韩这类无空格分隔的语言全文搜索设计。

解决方案

将XAMPP中的MariaDB替换为官方MySQL版本,操作步骤如下:

  1. 停止XAMPP所有服务,备份现有数据库文件(默认存储路径为XAMPP/mysql/data)
  2. 卸载XAMPP中的MariaDB组件,或下载与原XAMPP兼容的MySQL版本(推荐8.1.x系列)
  3. 将MySQL安装包解压至XAMPP的mysql目录,替换原MariaDB文件
  4. 参考原MariaDB的my.ini配置文件,调整MySQL的配置参数
  5. 启动XAMPP的MySQL服务,重新执行含WITH PARSER ngram的SQL命令即可正常生效

示例可用SQL命令(MySQL环境)

CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR(200),
    body TEXT,
    FULLTEXT (title, body) WITH PARSER ngram
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:30:59