mariadb在线删除索引不起作用

时间:2017-05-03 03:05:36

标签: mysql mariadb

我正在使用maria db。当我尝试使用在线ddl选项(lock = none,Algorithm = inplace)删除索引时,我收到语法错误。      DROP INDEX idx_new ON帖子ALGORITHM = INPLACE LOCK = NONE;      错误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-MariaDB)。

还有一些来自MySQL 5.5.5的工件吗?

MariaDB 10.2.5无法在线运行DROP INDEX吗?

1 个答案:

答案 0 :(得分:1)

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服务器和客户端剥离前缀,但第三方应用程序不会。