在运行中的mysql通过 set global 命令进行配置可以免重启服务达到设置效果(一般同时在my.cnf进行设置,保证下次重启不会丢失设置)
通过"log_%"查看Mysql的大部分日志开启情况
mysql> show variables like "log_%";
+----------------------------------------+--------------------+
| Variable_name | Value |
+----------------------------------------+--------------------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| log_error | ./96226bd987ef.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| log_throttle_queries_not_using_indexes | 0 |
| log_warnings | 1 |
+----------------------------------------+--------------------+
通过"%quer%" 查看Mysql慢查询日志的开启情况
mysql> show variables like "%quer%";
±---------------------------------------±-------------------------------+
| Variable_name | Value |
±---------------------------------------±-------------------------------+
| binlog_rows_query_log_events | OFF |
| ft_query_expansion_limit | 20 |
| have_query_cache | YES |
| log_queries_not_using_indexes | ON |
| log_throttle_queries_not_using_indexes | 0 |
| long_query_time | 2.000000 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| slow_query_log | ON |
| slow_query_log_file | /usr/local/mysql/all-logs/slow.log |
±---------------------------------------±-------------------------------+
Mysql服务层日志(默认都在data目录下)
- 二进制日志: bin log ,用于主从同步、数据恢复等,开启会影响性能,
开启操作:修改my.cnf,添加下面两项,然后重启mysql
server-id=1
log_bin=mysql-bin
通过bin-log查询mysql已经成功执行的操作事件记录
show binlog events;
- mysql运行异常错误日志(默认在data目录) xxx.err
- mysql主进程id日志(默认在data目录) xxx.pid
- 慢查询日志 定位执行效率低的sql.
修改mysql.cnf开启慢查询日志
slow_query_log=on
slow_query_log_file=/usr/local/mysql/all-logs/slow-query.log
long_query_time=0.2
log_queries_not_using_indexes=1
long_query_time=0.2定义超过0.2秒的查询都算效率低的
log_queries_not_using_indexes=1表示监控未使用索引字段的查询sql,哪怕当前这个查询耗时很小(不适用索引查询是个隐患,可能在后期数据量变大时变得很慢,而且变更索引也很麻烦)
- xxx
Mysql存储引擎层日志
- Innodb的事务重做日志: redo log
- Innodb的事务回滚日志: undo log