mariadb 在线删除索引不起作用

mariadb online drop index does not work

我正在使用 maria 数据库。当我尝试使用联机 ddl 选项 (lock=none, Algorithm=inplace) 删除索引时,出现语法错误。 DROP INDEX idx_new ON posts ALGORITHM=INPLACE LOCK=NONE; ERROR 1064 (42000): 你的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在第 1

行 'ALGORITHM=INPLACE LOCK=NONE' 附近使用的正确语法

据我了解文档,最新的mariadb应该可以运行那些DDL在线

我试过这个 ddl:

DROP INDEX idx_new ON posts ALGORITHM=INPLACE LOCK=NONE;

还有那些:

DROP INDEX idx_new ON posts LOCK=NONE ALGORITHM=INPLACE;
DROP INDEX idx_new ON posts LOCK=NONE;

这里有一些背景信息:

OS: macOS Sierra 10.12.3

我通过 brew mysql 安装(我不记得版本),然后用 mariadb 替换它(也通过 brew 卸载和安装)。

> mysql --version
mysql  Ver 15.1 Distrib 10.2.5-MariaDB, for osx10.12 (x86_64) using readline 5.1

奇怪的是:当我使用我的 sql ui (Sequel Pro) 时,它在标题中显示我 (MySQL 5.5.5 - 10.2. 5-玛丽亚数据库)。

MySQL 5.5.5 中是否还有一些遗留问题?

MariaDB 10.2.5 不应该 运行 在线删除索引吗?

DROP INDEX 中的语法错误是一个已知错误 https://jira.mariadb.org/browse/MDEV-12572,语法缺陷。解决方法是通过一般的 ALTER 语句来完成:

ALTER TABLE posts DROP INDEX idx_new, ALGORITHM=INPLACE, LOCK=NONE;

关于 5.5.5 前缀 -- 这不是 5.5 工件的指示。前缀与 10.x 发布版本行一起引入,以处理服务器和客户端不将 10.x 识别为有效版本并拒绝与其通信的问题(有关详细信息,请参阅 https://jira.mariadb.org/browse/MDEV-4088)。

MariaDB 服务器和客户端去除前缀,但第三方应用程序不会。