文档解释
Error number: 3838; Symbol: ER_PLUGIN_NOT_EARLY; SQLSTATE: HY000
Message: Plugin ‘%s’ is not to be used as an “early” plugin. Don’t add it to –early-plugin-load, keyring migration etc.
错误说明
MySQL的ER_PLUGIN_NOT_EARLY(3838)断言失败消息表明,加载的插件在某一点之前还没有完成加载。这种错误信息出现的场景是MySQL服务器尝试运行需要插件的功能,但是指定的插件尚未加载完毕,因此失败了。
常见案例
ER_PLUGIN_NOT_EARLY错误常见情况在下述条件时:
1.在MySQL通过启用插件功能(LOAD PLUGIN)加载插件之前就已经启动MySQL服务器,此时插件功能尚未加载成功。
2.尝试调用不存在的函数或者方法,此时MySQL试图加载不存在的插件工具,而该插件尚未安装或加载完毕,因此报出ER_PLUGIN_NOT_EARLY报错信息。
3.尝试调用函数或方法前使用的存储引擎与实际的存储引擎不一致,MySQL就无法调用这些函数或方法,此时可能也会报出ER_PLUGIN_NOT_EARLY报错信息。
解决方法
1.在MySQL通过启用插件功能(LOAD PLUGIN)加载插件之前,先手动重启MySQL服务器。
2.确认调用的函数或方法存在且已经正确被加载,例如是否按照正确的安装用路径,例如在mysql.plugins表也能找到对应的插件命令。
3.尝试调用函数或方法前先确认存储引擎没有跟最初安装时不一致。MySQL默认在每次运行CREATE TABLE语句的时候会自动使用当时的存储引擎,所以如果一开始的存储引擎与当前的不一致,就会出现ER_PLUGIN_NOT_EARLY报错信息。