mysql日志
mysql中的日志在/etc/my.cnf文件中配置
错误日志
log-error[=file_name]
- file_name指定错误日志文件的位置,如果没有给定 file_name 值,mysqld 使用错误日志名 host_name.err(host_name 为主机名) 并默认在参数 DATADIR(数据目录)指定的目录中写入日志文件。
二进制文件
server-id=101 log-bin[=file_name]
-
mysql 5.7.3之后,必须指定sever-id参数,数字格式
-
如果没有给出 file_name 值,默认名为主机名后面跟“-bin”。如果给出了文件名,但没有包 含路径,则文件默认被写入参数 DATADIR(数据目录)指定的目录。
-
binlog为二进制格式,无法用vi打开,应使用mysqlbinlog工具查看
- 日志清理
“RESET MASTER”
-
将删除所有 BINLOG 日志,新日志编号从“000001” 开始。
mysql> reset master;
Query OK, 0 rows affected (0.08 sec)
“PURGE MASTER LOGS TO 'XXXXX'”
-
该命令将删除“XXXXX”编号之前 的所有日志。
“PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh24:mi:ss'”
-
将删除日期为 “yyyy-mm-dd hh24:mi:ss”之前产生的所有日志。
expire_logs_days=3
-
在my.cnf文件中配置改参数,自动删除#天前的日志
查询日志
查询日志记录了客户端的所有语句,而二进制日志不包含只查询数据的语句。
- 启动mysql时指定
当用--log[=file_name]或-l [file_name]选项启动 mysqld(MySQL 服务器)时,查询日志开始被 记录。和其他日志一样,如果没有给定 file_name 的值,日志将写入参数 DATADIR(数据目 录)指定的路径下,默认文件名是 host_name.log。
设置log位置,Linux、OSX一般在 /tmp下。
- 动态设置
mysql>set global general_log_file='/tmp/general.log';
开启general log模式
mysql>set global general_log=on;
关闭general log模式
mysql>set global general_log=off;
慢日志
- 启动mysql时指定
当用--log-slow-queries[=file_name]选项启动 mysqld(MySQL 服务器)时,慢查询日志开始被 记录。和前面几种日志一样,如果没有给定 file_name 的值,日志将写入参数 DATADIR(数 据目录)指定的路径下,默认文件名是 host_name-slow.log。
- my.cnf文件中配置
slow_query_log = 1 # 1/0来选择是否启动慢日志
slow_query_log_file = slow.log
long_query_time = 2 # 查询时间超过2秒将会被记录