1、MySQL的日志。主要分为4类。
1》二进制日志:记录所有更改数据的语句,可以用于数据复制。
2》错误日志:记录MySQL服务的启动、运行、停止MySQL服务时出现的问题。
3》查询日志:记录建立的客户端连接和执行的语句。
4》慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。
当执行一个flush logs语句或执行MySQLadmin flush-logs或MySQLadmin refresh时,将刷新日志。
启动日志功能会降低MySQL数据库的性能。如在查询非常频繁的MySQL数据库系统中,如果开启了通用查询日志和慢查询日志,MySQL数据库会花费很多的时间记录日志,同时,日志会占用大量的磁盘空间。
2、二进制日志:只要记录MySQL数据库变化。
1》启动和设置二进制日志
二进制日志默认是关闭的
my.ini中[MySQLd]组下关于二进制日志的设置: log-bin [=path/ [filename]] expire_logs_days=10 max_binlog_size=100M
2》查看二进制日志
//查看二进制日志文件个数及文件名 show binary logs; //查看二进制日志文件的内容 MySQLbinlog filename.0000001
3》删除二进制日志
MySQL二进制日志文件可以配置自动删除。同时也提供了手动删除的方法: 1、使用reset master语句删除所有二进制日志文件 reset master; 2、使用purge master logs语句删除指定日志文件 purge {master | binary} logs to 'log_name' --删除文件名编号比指定文件名编号小的所有日志 purge {master | binary} logs before 'date' --删除指定日期以前的所有日志
4》使用二进制日志恢复数据库
--使用MySQLbinlog恢复数据 mysqlbinlog [option] filename |mysql -u user -p pwd
option:
--start-date和--stop-date=>指定恢复数据库的起始时间点、结束时间点
--start-position和--stop-position=>指定恢复数据的起始位置、结束位置
5》暂时停止二进制日志功能
set sql_log_bin={0 | 1}
3、错误日志
包含了当MySQLd启动和停止、以及服务器在运行过程中发生任何严重错误时的相关信息。默认记录错误日志到数据库目录下,如果没有配置文件的名字,默认为hostname.err。执行flush logs,错误日志文件会被重新加载。
1》启动和设置错误日志
错误日志的启动和停止以及指定日志文件名,都可以通过修改my.ini(或mycnf)来配置。错误日志配置项为log-error。在[MySQLd]下配置log-error,则启动错误日志。
[mysqld] log-error=[path / [file_name]]
2》查看错误日志:日志以文本文件的形式保存
mysql> show variables like 'log_error'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | log_error | .LFY-PC.err | +---------------+--------------+ 1 row in set, 1 warning (0.00 sec) mysql>
3》删除错误日志
手动删除运行状态下错误日志,MySQL并不会自动创建日志文件。flush logs在重新加载日志的时候,如果文件不存在,则会自动创建 mysqladmin -u user -p flush-logs 或者 mysql>flush logs;
4、通用查询日志
记录的是MySQL的所有用户操作,包括启动和关闭服务、执行查询和更新语句
1》启动和设置通用查询日志
--MySQL默认没有开启通用查询日志 --默认日志存放在hostname.log 在my.ini或者my.cnf的[MySQLd]组下添加log选项即可开启: [mysqld] log[=path / [filename]]
2》查看通用查询日志
通用日志使用的是文本形式保存。
3》删除通用查询日志
可以直接删除日志文件,然后使用 MySQLadmin flush-logs重新创建。
5、慢查询日志
记录查询超过执行时间的日志。
1》启动和设置慢查询日志
--默认是关闭的,可以通过MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志; --也可以通过my.ini或者my.cnf文件配置,这种方式需要指定记录阈值。 --不指定日志文件名,默认为hostname-slow.log --查询时间阈值,n是时间值,单位是秒。没有配置默认是10秒。 [mysqld] log-slow-queries[=path / [filename]] long_query_time=n
2》查看慢查询日志
文件以文本形式保存。
3》删除慢查询日志
直接删除文件,然后使用 MySQLadmin flush-logs重新创建。