错误日志

是MySQL中最重要的日志之一,它记录了当mysqld(mysql的守护进程)启动和停止时,以及服务器在运行过程中发生任何严重错误时 的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志

 

该日志是默认开启的,默认存放目录/var/log/,默认的日志文件名为mysqld.log。查看日志位置: show variables like '%log_error%';#其中就有log_error变量,log_error变量记录了错误日志关联的文件(/var/log/mysqld.log)

 

不登录进MySQL执行如下即可查看'mysqld.log错误日志文件'里面尾部的50条数据 tail -50 /var/log/mysqld.log;

 

当我们执行某条语句错误的时候,错误信息就会被记录到'mysqld.log文件里面。下面是模拟:

 

操作如下

 

#新开一个会话,实时查看mysqld.log文件里面的内容,这个会话我们不用动,用来切换方便查看日志的 tail -f /var/log/mysqld.log;

#修改配置文件,auto.cnf文件记录的是MySQL服务的uuid vim /var/lib/mysql/auto.cnf; 按a键 删一个数字 按Esc键 :wq 回车 #上面那六行执行之后会进入一个编辑页面,并且目前只有一行uuid的数据,因为uuid的数据长度是固定的,为了模拟错误, #我们可以把uuid末尾的那个数字删掉(记住,等下你要改回来的),然后如下重启MySQL,看一下错误日志会不会发现这里的错误 systemctl restart mysqld;#重启报错

当我们想知道是什么错误导致的是,就可以去看mysqld.log文件,由于我们已经在另一个会话实时查看着了,所以直接切换到那个会话 我们会看到新多的一堆英文,只需要看有[error]的行即可,它会告诉我们具体原因,比如auto.cnf file is not a valid UUID,即无效的uuid 我们相对应的去修改即可恢复正常 vim /var/lib/mysql/auto.cnf;#把你删的那个数字写回去 按a键 补回你删的那个数字 按Esc键 :wq 回车

再次重启就正常啦 systemctl restart mysqld;