Error number: MY-010012; Symbol: ER_LOG_GENERAL_CANNOT_OPEN; SQLSTATE: HY000
Message: either restart the query logging by using “SET GLOBAL GENERAL_LOG=ON” or
MY-010012; ER_LOG_GENERAL_CANNOT_OPEN; HY000错误是MySQL在尝试打开日志文件(通常用于audit 日志,mysql日志,ssl证书和访问控制日志)时导致的错误。
错误说明
ER_LOG_GENERAL_CANNOT_OPEN错误的意思是MySQL不能打开日志文件。这个错误不指向特定的日志(audit 日志,mysql日志,ssl证书和访问控制日志),它仅表示由于某种原因,MySQL尝试打开日志文件时失败了。它返回的错误号是HY000,SQLSTATE码是HY000。
常见案例
ER_LOG_GENERAL_CANNOT_OPEN错误通常发生在损坏了MySQL日志文件,MySQL试图打开日志文件失败,而MySQL尝试操作时,日志文件处于损坏状态。这个错误也会发生在拒绝MySQL操作请求的服务器上,MySQL不会尝试打开日志文件,而是立即抛出错误。
另外,mysql.user表中不正确的数据,也可能导致MySQL出现ER_LOG_GENERAL_CANNOT_OPEN错误。如果用户使用了不正确的host值或其他用户,MySQL可能会返回此错误作为问题答案。
解决方法
为解决ER_LOG_GENERAL_CANNOT_OPEN错误,首先应检查MySQL日志文件是否损坏或不可用,可以使用ls -l来完成检查。如果检查出日志损坏的话,则需要重命名日志文件,并重新创建一个新的日志文件。
如果检查日志文件时没有发现问题,此时应检查mysql.user表是否有错误的记录,可以使用以下命令查看:
select * from mysql.user;
如果在检查mysql.user表时发现错误的记录,需要更新记录中不正确的值,并重新提交mysql.user表。
另外,为了减少此类错误的发生,MySQL用户应定期对MySQL进行维护,以保持MySQL的正常运行状态。这样可以保持系统的完整性和正常运行。