1.錯誤日志
#配置: 默認位置: log_error=$DATDDIR/hostname.err 看日志: 主要關注 [ERROR],deadlock # 默認開了,默認位置 datadir=/data/3306/data/HOSTNAME.err # 控制參數 log_error=/data/3306/err.log, # 注意: 日志和數據分開存儲 例如: /mysqllog/3306/mysql-err.log [root@localhost ~]# cat /etc/my.cnf [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/3306/data server_id=51 port=3306 socket=/tmp/mysql.sock log_error=/data/3306/log/mysql-err.log [root@localhost ~]# mkdir -p /data/3306/log/ [root@localhost ~]# touch /data/3306/log/mysql-err.log [root@localhost ~]# chown -R mysql.mysql /data/ [root@localhost ~]# /etc/init.d/mysqld restart
#錯誤日志:收集有以下日志
啟動故障
主從故障
死鎖
數據庫hang,堆棧信息
#主要關注: [ERROR]
[ERROR] [MY-000068] [Server] unknown option ---》 配置文件有問題
#日志記錄級別
mysql> show variables like '%log_error%';
+----------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------+----------------------------------------+
| binlog_error_action | ABORT_SERVER |
| log_error | /data/3306/log/mysql-err.log |
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_suppression_list | |
| log_error_verbosity | 2 | #可以調整級別,級別越大,日志越詳細,對性能也有影響
+----------------------------+----------------------------------------+
mysql> set global log_error_verbosity=3
1.錯誤信息;
2.錯誤信息和告警信息;
3.錯誤信息、告警信息和通知信息。
#如果mysql啟動不了,而且日志中沒有記錄,可以用mysld & 將日志打印在屏幕上
mysqld & #相當於后台啟動,同時日志打印在屏幕上
2.二進制日志(binlog)
#1.作用 binlog 作用 a.記錄了MySQL 發生過的修改的操作的日志。,除了show select ,修改操作都會記錄binlog b.數據恢復、主從、SQL問題排查、審計(工具:binlog2sql my2sql) #2.配置方法 配置binlog 1. 8.0默認開啟binlog 2. 默認在datadir binlog.0000001 3. 建議日志和數據分開存儲 4. 參數 server_id=111 log_bin=路徑/文件名前綴 #3.顯示配置文檔 [root@db01 /data/3306/log14:51:10]# cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql datadir=/data/3306/data basedir=/usr/local/mysql socket=/tmp/mysql.sock server_id=51 log_error=/data/3306/log/mysql-err.log log_bin=/data/3306/log/mysql-bin [root@localhost ~]# /etc/init.d/mysqld restart #4.確認配置binlog啟效 [root@db01 /data/3306/log14:52:13]# ll total 12 -rw-r----- 1 mysql mysql 156 Apr 12 14:51 mysql-bin.000001 -rw-r----- 1 mysql mysql 32 Apr 12 14:51 mysql-bin.index -rw-r--r-- 1 mysql mysql 2798 Apr 12 14:51 mysql-err.log
3.慢日志(slow_log)
#1.作用 記錄MySQL工作中,運行較慢的語句。用來定位SQL語句性能問題。 #2.配置方法 開關: slow_query_log=1 #默認為0,表示關閉 slow_query_log_file=/data/3306/log/slow.log #慢日志路徑 維度: #在線設置 set global slow_query_log=1 set global long_query_time=0.5 set global log_queries_not_using_indexes=1 set global log_throttle_queries_not_using_indexes=1000 #3.確認配置文檔 [root@db01 /etc/init.d15:19:00]# cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql datadir=/data/3306/data basedir=/usr/local/mysql socket=/tmp/mysql.sock server_id=51 log_error=/data/3306/log/mysql-err.log log_bin=/data/3306/log/mysql-bin slow_query_log=1 slow_query_log_file=/data/3306/log/slow.log long_query_time=0.5 log_queries_not_using_indexes=1 log_throttle_queries_not_using_indexes=1000 [root@localhost ~]# /etc/init.d/mysqld restart
4.general_log
#1.作用 普通日志,會記錄所有數據庫發生的事件及語句。 文本格式記錄MySQL運行期間,所有的所作語句, 可以做問題診斷和調試 #2.配置 參數: general_log , general_log_file= 路徑 general_log=1 #默認關閉狀態 0 general_log_file=/data/3306/log/genlog #3.確認配置生效 [root@db01 /data/3306/log15:39:56]# cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql datadir=/data/3306/data basedir=/usr/local/mysql socket=/tmp/mysql.sock server_id=51 log_error=/data/3306/log/mysql-err.log log_bin=/data/3306/log/mysql-bin slow_query_log=1 slow_query_log_file=/data/3306/log/slow.log long_query_time=0.5 log_queries_not_using_indexes=1 log_throttle_queries_not_using_indexes=1000 general_log=1 general_log_file=/data/3306/log/genlog [root@localhost ~]# /etc/init.d/mysqld restart