MySQL日誌管理
排錯
error log 錯誤⽇志
記錄mysql啟停錯誤資訊
general log 普通⽇志
記錄客戶端查詢⽇志
終端查詢⽇志情況
慢查詢⽇志
⼆進位制⽇志
⼆進位制⽇志 binary log 記錄資料被修改的相關資訊
# at 219 :表示該查詢在⼆進位制⽇志⽂件中的位置
\#230527 12:09:02 :表示該查詢執⾏的時間,⽇期格式為YYMMDD HH:MM:SS
server id 70 :表示MySQL伺服器的ID
end_log_pos 306 :表示該查詢在⼆進位制⽇志⽂件中的結束位置
CRC32 0xc85c6c41 :表示該查詢的CRC32校驗和
Query :表示該⽇志記錄是⼀個查詢
vx: WingspanGovx: WingspanGo
thread_id=2 :表示執⾏該查詢的執行緒ID
exec_time=0 :表示該查詢的執⾏時間為0毫秒
error_code=0 :表示該查詢沒有出錯
use wing /*!*/; :表示該查詢使⽤了 wing`資料庫。
SET TIMESTAMP=1685160542/*!*/; :設定查詢的時間戳。
SET @@session.pseudo_thread_id=2/*!*/; :設定當前會話的虛擬執行緒ID。
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0,
@@session.unique_checks=1, @@session.autocommit=1/*!*/; :設定當前會話的⼀些引數,如外來鍵檢
查、⾃動提交等。
SET @@session.sql_mode=1436549152/*!*/; :設定當前會話的SQL模式。
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; :設
置當前會話的⾃增計數器起始值和步⻓。
/*!\C utf8 *//*!*/; :設定當前會話的字符集為UTF-8。
SET
@@session.character_set_client=33,@@session.collation_connection=33,@@session.collatio
n_server=8/*!*/; :設定當前會話的字符集和排序規則。
SET @@session.lc_time_names=0/*!*/; :設定當前會話的時間格式。
SET @@session.collation_database=DEFAULT/*!*/; :設定當前會話的資料庫排序規則。
TRUNCATE TABLE users/*!*/; :表示執⾏了⼀個 TRUNCATE TABLE 查詢,將 users 表清空。
⽇志截斷
1.切割binlog⽇志
重啟 mysqld 服務, 在 mysql 控制檯執⾏ mysql> flush logs
在 mysql 控制檯執⾏ reset master 會清空所有 binlog (危險)
2.刪除部分binlog⽇志
mysql> purge master logs to 'sql_106_70.000001'; #刪除指定⽇志以前的⽇志⽂件
mysql> purge binary logs before '2023-05-27 12:44:00'; #刪除指定時間以前的⽇志⽂件
使⽤時間節點進⾏恢復
# mysqlbinlog sql_106_70.000006 --start-datetime='2023-05-28 15:41:00'
# mysqlbinlog sql_106_70.000005 --stop-datetime='2023-05-28 15:40:00'
# mysqlbinlog sql_106_70.000005 --start-datetime='2023-05-28 12:00:00' --stop
datetime='2023-05-28 15:40:00'
使⽤位置點進⾏恢復
# mysqlbinlog sql_106_70.000006 --start-position=219
# mysqlbinlog sql_106_70.000006 --stop-position=503
# mysqlbinlog sql_106_70.000006 --start-position=219 --stop-position=503
2.MySQL****物理備份與恢復