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

MySQL 8执行DROP/ALTER触发ERROR 3664问题求助

求助:MySQL 8.0.11 出现 ERROR 3664 无法删除/修改自建表

我最近碰到一个棘手的MySQL问题,每次执行DROP数据库或者ALTER表操作时都会触发以下错误:

ERROR 3664 (HY000): Failed to set SDI 'MyDatabase.MyTable' in tablespace 'mydatabase/mytable'.

更奇怪的是,这个错误仅在重启MySQL并以root用户重新登录后才会出现,具体的触发规律我整理如下:

  1. 以root用户登录MySQL;
  2. 创建数据库及数据表;
  3. 此时执行DROP数据库或ALTER表操作完全正常 😊;
  4. 退出MySQL;
  5. 重启MySQL(先停止再启动);
  6. 再次以root用户登录MySQL;
  7. 尝试执行DROP之前创建的数据库或ALTER表时,就会触发ERROR 3664,操作完全无法完成 😞

我猜测,重启MySQL后系统会识别新的库表变更,更新和InnoDB库表、表空间相关的**SDI(Serialized Dictionary Information)**元数据,但这种SDI的识别反而阻碍了ALTER和DROP命令的执行。我现在很困惑:这会不会是MySQL的Bug?还是说root用户居然没有修改SDI数据的权限?(虽然官方文档说SDI数据是由内部API修改的)

这个问题每次创建库表都会出现,我目前只能用一个非常繁琐的临时方案解决:

  1. 手动删除数据目录中与该数据库关联的数据文件;
  2. 执行DROP DATABASE IF EXISTS MyDatabase;(有时候需要多次登录/退出,或者重启MySQL后执行SELECT语句才能生效);
  3. 重新创建需要的数据库和表。

恳请各位大佬帮忙指点,谢谢!


补充信息:我在Mac系统上运行的是MySQL 8.0.11社区版,目前在相关技术社区也暂未找到公开的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:16:18