install plugin 是启用 mysql clone 功能的第一步,但需满足插件文件存在、plugin_dir 正确、权限充足、selinux 允许、升级后重启等前置条件,否则即使命令执行成功,状态仍为 disabled 或后续克隆报错。

INSTALL PLUGIN 是启用 MySQL Clone 功能的第一步,但直接执行它不等于克隆就 ready 了。多数人卡在这一步,不是命令写错,而是没满足前置条件。
插件安装失败:ERROR 1126 或 Unknown command 'CLONE'
这是最常见报错,本质是插件根本没加载成功。INSTALL PLUGIN clone SONAME 'mysql_clone.so' 只在插件文件存在且路径正确时才生效。
- 先确认插件文件真实存在:
ls -l $MYSQL_HOME/lib/plugin/mysql_clone.so(Linux)或$MYSQL_HOME/lib/plugin/mysql_clone.dll(Windows);不存在就说明二进制包没带该插件(极少见),或plugin_dir配置错了 -
plugin_dir必须指向实际插件目录,可通过SELECT @@plugin_dir;查看当前值,再比对文件是否存在 - 如果用配置文件方式启动,
[mysqld]下必须写plugin-load-add = mysql_clone.so,不能写成plugin-load或漏掉= - 升级场景下(比如从 MySQL 5.7 升到 8.0.26),
--plugin-load-add会在启动时报MY-013238: Cannot install during upgrade,必须先完成升级、正常启动一次后再加配置重启
插件状态是 DISABLED 而不是 ACTIVE
执行 INSTALL PLUGIN 后查 INFORMATION_SCHEMA.PLUGINS 发现状态是 DISABLED,说明加载失败但没报错——常见于权限或依赖问题。
- MySQL 进程启动用户(如
mysql用户)必须对mysql_clone.so文件有读+执行权限(chmod 755) - Linux 上若启用了 SELinux,可能拦截动态库加载,临时关闭验证:
setenforce 0;长期方案需添加策略audit2allow -
clone=FORCE_PLUS_PERMANENT写在 my.cnf 里可强制激活,但仅当插件已成功加载的前提下才起作用;它不能绕过文件缺失或权限错误
克隆操作仍报 ERROR 3095:Insufficient privileges
插件状态是 ACTIVE,但执行 CLONE INSTANCE 时提示权限不足,问题不在 INSTALL PLUGIN 命令本身,而在用户权限配置。
-
BACKUP_ADMIN是硬性要求,REPLICATION SLAVE或PROCESS权限完全无效 - 远程克隆中,**捐赠者(源库)用户**要
BACKUP_ADMIN,**接收者(目标库)用户**要CLONE_ADMIN(注意不是同一个权限) - 权限必须显式授予:
GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%'; FLUSH PRIVILEGES;;仅靠root登录执行CLONE不行,除非root确实被授了该权限
执行后克隆卡住或报 too many concurrent clone operations
这不是 INSTALL PLUGIN 的问题,但常因前序失败残留导致后续安装看似成功、实则无法使用。
- 一次失败的
CLONE INSTANCE可能留下未清理的后台线程,查SHOW PROCESSLIST;会看到状态为Clone_donating或Clone_receiving的长连接 - 必须手动
KILL掉这些线程,否则新克隆会直接报ERROR 3634: too many concurrent clone operations maximum allowed -1 -
INSTALL PLUGIN不会自动清理这些状态,它只管插件加载;别指望重装插件就能“重置”克隆状态
真正麻烦的从来不是敲那条 INSTALL PLUGIN 命令,而是它背后那一串隐性依赖:文件路径、进程权限、SELinux、升级顺序、残留线程……少一个,克隆就停在第一步。











