我试图建立 mysql 集群,但失败得很惨。我终于把它切换回标准的 mysql,但现在我有一个我不能删除的“ndbinfo”数据库。它导致我的 automysqlbackup cronjob 报告错误。
mysql> drop database ndbinfo;
ERROR 1286 (42000): Unknown storage engine 'ndbinfo'
有没有办法手动做手术删除数据库?或者也许是我不知道的程序?我没有在 mysql 数据库中的任何地方看到引用的“ndbinfo”。
它在 Ubuntu Server 22.04 上,来自 mysql APT 存储库。`mysql --version 的输出:
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
我终于找到了解决这个问题的方法。
除了 information_schema、database-schema 和 ndbinfo,我在每个数据库上都做了 mysqldump。然后我停止了mysql并重命名为/var/lib/mysql。
使用全新的 mysql 安装将所有转储文件复制到另一个系统。使用来自源系统上“show create database”的信息创建数据库,加载这些转储,并在该服务器上停止 mysql。
最后一步是 rsync /var/lib/mysql 回到起始服务器并在那里启动 mysql。
很可能我在 zabbix 数据库中丢失了几秒钟的数据,这并不重要。现在 ndbinfo 数据库消失了,automysqlbackup 运行没有错误。