Error number: MY-010816; Symbol: ER_BINLOG_CANT_OPEN_FOR_LOGGING; SQLSTATE: HY000
Message: Could not open %s for logging (error %d). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
错误说明:
MySQL错误号MY-010816 对应ER_BINLOG_CANT_OPEN_FOR_LOGGING,对应的SQLSTATE HY000 ,说明无法打开binlog日志用于记录操作,无法正确执行写入操作。这里,打开binlog日志是指把写入操作正确记录到日志文件中执行,保证数据的一致性和完整性。
这个错误常见的案例是没有成功打开binlog日志文件,或者在操作过程中对binlog文件的权限不够。比如使用MySQL服务通过Unix套接字打开binlog,但是用户没有给MySQL服务权限,就会收到这样的错误;或者针对binlog文件设置了读取限制,或者binlog文件设置在另外一台服务器上,而没有被正确安装,或者文件所在的文件夹权限设置不正确等等情况都会导致该错误的出现。
解决方法:
(1)检查binlog日志文件的权限,确保MySQL服务有读写的权限;
(2)检查binlog日志文件的访问权限是否设置了读取限制;
(3)检查binlog文件所在的文件夹是否有权限访问。
(4)如果binlog文件设置在另外一台服务器上,则需要确认路径是否正确,以及服务器之间的网络连接是否正常;
(5)确认防火墙策略,确保端口开放,可以正常传输数据;
(6)如果上述步骤都检查完毕,并且仍然无法打开binlog日志文件,则可以尝试查看MySQL日志文件中详细错误,或者重新安装MySQL服务器试试。