日志是Mysql数据库的重要组成部分,日志文件中记录着mysql数据库运行期间发生的变化,当数据库意外出现异常问题时可以通过日志查看文件错误原因,并通过日志文件进行数据恢复。
Mysql包含以下几种日志:
1)错误日志 -log-err 记录启动、运行或停止时出现的问题。
2)查询日志 -log 记录建立的客户端连接和执行的语句。
3)慢查询日志 -log-slow-queries 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。
4)更新日志 -log-update 记录InnoDB等支持事务的存储引擎执行事务时产生的日志。
5)二进制日志 -log-bin 记录所有更改数据的语句。主要用于复制和即时点恢复。
查看所有日志,执行SQL语句SHOW GLOBAL VARIABLES LIKE '%log%';,以win7系统为例,具体如下:mysql> SHOW GLOBAL VARIABLES LIKE '%log%';
+-----------------------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+-----------------------------------------+---------------------------------------------------------------+
| back_log| 50 |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | STATEMENT |
| binlog_stmt_cache_size | 32768 |
| expire_logs_days| 0 |
| general_log | OFF |
| general_log_file| C:\ProgramData\MySQL\MySQL Server 5.5\Data\Mrxxx-PC.log |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 14680064 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | .\ |
| innodb_mirrored_log_groups | 1 |
| log | OFF |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | C:\ProgramData\MySQL\MySQL Server 5.5\Data\Mrxxx-PC.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries| OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_relay_log_size | 0 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info|
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| slow_query_log | OFF |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\Mrxxx-PC-slow.log |
| sql_log_bin | ON |
| sql_log_off | OFF |
| sync_binlog | 0 |
| sync_relay_log | 0 |
| sync_relay_log_info | 0 |
+-----------------------------------------+---------------------------------------------------------------+
41 rows in set (0.00 sec)
注意:log_err可直接定义文件路径或ON|OFF;log_warings需使用1|0定义来启动。
查看是否启动日志,执行SQL语句show variables like 'log_%';,结果如下:mysql> show variables like 'log_%';
+---------------------------------+----------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------------------------------------+
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | C:\ProgramData\MySQL\MySQL Server 5.5\Data\Mrxxx-PC.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries| OFF |
| log_warnings | 1|
+---------------------------------+----------------------------------------------------------+
8 rows in set (0.00 sec)
ON 启动,OFF 停止
开启慢查询,具体操作步骤如下:
long_query_time =2 指是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log 将查询返回较慢的语句进行记录
log-queries-not-using-indexes = nouseindex.log 就是字面意思,log下来没有使用索引的query
log=mylog.log 对所有执行语句进行记录