如何在不重新启动的情况下打开 mysql 错误日志记录?

如何在不重新启动的情况下打开 mysql 错误日志记录?

我有一个正在运行的 mysql 系统,但没有打开任何日志记录。

如何在不重启服务器的情况下启用日志记录?我需要找出 mysql 复制失败的原因。

顺便说一句。我尝试过 /etc/init.d/mysqld reload

但重新加载并不是一个有效的选项。

该系统正在运行电话,因此重新启动它很可能会导致电话掉线,这是我无法承受的。

还尝试在 mysql 命令提示符下设置 log_error='/var/log/mysql/error.log',但它返回并说没有这样的系统变量。然而 show variable 列出了它。

答案1

log-error不是动态系统变量。如果您需要更改它,则必须重新启动。

我很难相信它不是日志记录。此设置通过两种方法指定。第一种是在运行时使用--log-error=filename,通常在 init 文件中指定。更常见的是,它会在您的my.cnfwith中指定log-error。最后,如果未设置,它将默认为您的数据目录hostname.err

在文件系统中搜索扩展名为 的文件.err。很有可能,你会找到日志。

find / -name '*.err'
locate .err | egrep '.err$'

答案2

如果从属复制失败,您可以在从属服务器上查看错误,而无需启用日志记录并重新启动主服务器上的实例。

登录到 MySQL 的从属实例并执行

mysql > show slave status;

这应该会向您显示最后一条错误消息,您应该能够从中确定修复它的操作。

或者在从属服务器上启用日志记录并查看那里的查询和错误。

相关内容