1. 程式人生 > 其它 >MySQL 8.0 的工具日誌配置管理

MySQL 8.0 的工具日誌配置管理

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