文档解释
Error number: MY-010603; Symbol: ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY; SQLSTATE: HY000
Message: Path ‘%s’ is a directory name, please specify a file name for –relay-log-index option.
Error number: MY-010603; Symbol: ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY; SQLSTATE: HY000
错误说明:
MY-010603(ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY)错误指出Relay log 需要是一个文件,而非文件夹。这个错误出现在MySQL5.5(前)的版本,目的是指示错误的索引(比如:master.info文件)被MySQL用于复制行为的replication load balancers所使用,而该索引不可以被设置为一个文件夹,必须是一个文件。
常见案例
这个错误很常见,特别是当用户使用MySQL安装程序(MySQL Installer)时。该安装程序会自动检测你的MySQL环境,如果发现索引不是在文件内,而是在文件夹内,其中一个报错就是MY-010603(ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY)。还有另外一种极端情况,例如,如果有一个脚本正在同时使用,与此同时,MySQL的索引也被改变,这也会触发错误MY-010603(ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY)。
解决方法:
通常,最直接的实现是替换Master.info文件,或者其他与索引相关的文件,在替换的时候要小心,避免出现其他问题。
如果不希望替换文件,可以完全重新配置你的MySQL复制和索引。你可以在你的外部MySQL源中解决这个问题,也可以使用MySQLroot授权进行修复,但总之,你必须要获取xlor_slave引擎的权限。你可以使用MySQL Installer或者MySQL Shell来解决这个问题。
最后,Trustx文件也有可能会导致MY-010603(ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY)错误,所以要在修改文件使用truestx特性时留意文件冲突问题。