错误日志
错误日志记录着mysqld启动和停止,以及服务器在运行过程中发生的错误的相关信息。在默认情况下,系统记录错误日志的功能是关闭的,错误信息被输出到标准错误输出。
指定日志路径两种方法
编辑my.cnf 写入 log-error=[path]
通过命令参数错误日志 mysqld_safe –user=mysql –log-error=[path] &
显示错误日志的命令(如下图所示)
普通查询日志 general query log
记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {Time ,Id ,Command,Argument }。也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。
查看日志的存放方式:show variables like ‘log_output’;
如果设置mysql> set global log_output=’table’ 的话,则日志结果会记录到名为gengera_log的表中,这表的默认引擎都是CSV
如果设置表数据到文件set global log_output=file;
设置general log的日志文件路径:
set global general_log_file=’/tmp/general.log’;
开启general log: set global general_log=on;
关闭general log: set global general_log=off;
然后在用:show global variables like ‘general_log’
慢查询日志
慢日志记录执行时间过长和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。
1. 查看慢查询时间:
show variables like “long_query_time”;默认10s
2. 查看慢查询配置情况:
show status like “%slow_queries%”;
3. 查看慢查询日志路径:
show variables like “%slow%”;
4. 开启慢日志
查看已经开启:
二进制日志
二进制日志存储修改数据库中表数据的所有动作,包含了所有更新了数据或者已经潜在更新了数据的所有语句。潜在跟新了数据的SQL语句例如:无法匹配行的DELETE语句;设置列为当前值的UPDATE语句。除此之外,该日志还存储了语句执行期间耗时的相关信息。二进制日志文件以一种更有效并且是事务安全的方式包含更新日志中可用的所有信息。MySQL在执行语句之后,但在释放锁之前,马上将修改写入二进制日志中