如何查看MySQL错误日志?

抱歉如果这是一个错误的地方问问题。

我使用Ubuntu 16.04,对Linux系统知识很少,我依赖webmin来托管我的网站。最近出现了一个问题,MySQL无法启动,所以我正在尝试查看错误日志以获取关于问题的线索。

我的第一个问题是:通常如何找到错误日志的位置?我做了很多搜索,但在不同的系统和设置中,这些错误日志似乎可以位于不同的位置,而且文件名也不同。虽然我已经成功地找到它们在/var/log/mysql/下(与我能找到的每个来源都不同),但我想知道如何通常找到这些日志的位置。我觉得应该有一些配置文件来控制这个,对吗?此外,在某些网页上提到了mysql.log文件,但我找不到它在哪里。

其次,在/var/log/mysql下,有像error.log和error.log.1.gz、error.log.2.gz这样的文件。除了error.log文件外,为了读取其他文件,我必须先解压它们。是否有一种方法,比如某个mysql命令,可以直接读取它们?
1个回答

虽然我已经成功在/var/log/mysql/下找到了它们(这与我能找到的每个来源都不同),但是长期以来,日志文件一直存储在/var/log/目录下。将其更改为该位置是为了默认添加到"logrotate"中。您可以在Ubuntu的任何日志文件中都可以在/var/log/目录下找到。
其次,在/var/log/mysql/下有像error.log和error.log.1.gz error.log.2.gz这样的文件。
带有数字的日志是旧的日志。日志文件在某个时间点由"logrotate"进行压缩。压缩的设置存储在/etc/logrotate.conf中,默认情况下文件每周压缩一次。
除了error.log文件之外,为了读取其他文件,我必须先解压它们。是否有任何方法,比如一些mysql命令,可以直接读取它们吗?
不,您不能。而且第一部分也不正确。原因有两个:
  • gz结尾的文件至少有一周的历史了,你为什么要查看它们?一周前的错误已经太旧了,没有任何用处。
  • 您可以查看压缩的日志文件。

    zcat /var/log/mysql/error.1.gz | more
    

    将会显示文件的行数,而无需解压缩。


另外需要补充的是:日志查看器还可以显示压缩的日志文件。你只需将日志文件添加到查看器中(在设置中查看“打开”):

enter image description here