mysql學習筆記之十五(日志管理)
來源:程序員人生 發布時間:2015-08-04 08:28:52 閱讀次數:4024次
日志:記錄數據庫的運行情況,平常操作,毛病信息等
mysql日志:2進制日志,毛病日志,和查詢日志。
2進制日志:
通過2進制情勢記錄數據庫的各種操作,但是卻不記錄查詢語句
毛病日志
該日志會記錄mysql服務器啟動,關閉和運行時出錯等信息
查詢日志
該類型日志會分為兩類,通用查詢日志和慢查詢日志。其中前者會記錄用戶登錄和記錄查詢語句;后者會記錄履行時間超過指定時間的各種操作
日志操作時數據庫保護中最重要的手段之1,通過日志文件,不但可以通過日志文件愛你來查看出錯的緣由,而且還可以通過日志文件愛你進行數據恢復。
默許情況下,mysql軟件只會啟動毛病日志文件,而其他日志文件則需要手動啟動才可以被啟動。
操作2進制日志
啟動日志
如果mysql數據庫意外停止,可以通過2進制文件來查看用戶履行了哪些操作,對數據庫服務器文件做了哪些修改,然后根據2進制日志文件中的記錄來恢復數據庫服務器。
默許情況下,2進制是關閉的。
通過配置my.ini來實現,具體內容:
[mysqld]
log-bin[=dir[filename]]
這個添加不要在my.ini文件頭添加,要在中間添加,以下位置:
log-slow-queries=mysql-slow.log
log-error=mysql.err
log-bin=mysql-bin
添加毛病有可能致使mysql沒法啟動。
dir用來指定2進制文件的存儲路徑;filename用來指定2進制文件的文件名,具體魄式為filename.number,其中number的格式為000001、000002...等
在具體啟動2進制文件時,如果沒有設置參數dir和filename,2進制日志文件將使用默許名字主機名-bin.number,保存在默許目錄--數據文件里。
每次重啟mysql服務器都會生成1個新的2進制日志文件,這些日志文件的文件名里,filename部份不會改變,但是number的值會不斷增加。
filename.index:2進制文件列表。 這個文件會自動添加
查看日志
mysqlbinlog filename.number
(這個命令總是履行毛病。)
查看發現,2進制日志會記錄用戶對服務器做了哪些操作,但不包括查詢
只查看第1個binlog文件的內容
show binlog events;
查看指定binlog文件的內容
show binlog events in 'mysql-bin.000002';
查看當前正在寫入的binlog文件
show master statusG
獲得binlog文件列表
show binary logs;
停止日志
如果再my.ini配置文件中添加了log-bin選項,那末mysql會1直啟動2進制日志功能。
如果想停止,只需要刪除log-bin選項便可
1種特殊情況,1些操作需要記錄在日志中,而1些操作不需要,那末可使用set命令
如:
set SQL_LOG_BIN=0
set sql_log_bin=1
只有具有super權限的用戶,才可以履行set語句
刪除日志
reset master
刪除所有的2進制文件
purge master logs to filename.number
刪除小于編號number的所有2制止文件
purge master logs before 'yyyy-mm-dd hh:MM:ss'
刪除指定時間之前的2進制日志文件
操作毛病日志
默許是開啟的。名稱格式1般為hostname.err,保存在數據庫數據文件里
配置文件my.ini中的error-bin[=dir[filename]]可以自定義毛病日志的保存路徑
啟動
如果沒有開啟,或關閉了,那末可以在配置文件my.ini里啟動,
[mysqld]
error-bin=[dir[filename]]
查看
毛病日志是以文本文件的情勢存儲的,所以可以直接打開查看
停止
直接把配置文件里的對應選項注釋掉,然后重啟
刪除
flush logs
履行上述命令,mysql首先會創建1個新的毛病日志,然后將舊的毛病日志更名為filename.err-old。如果管理員認為不需要保存舊的日志,則可以直接刪除
操作查詢日志
通用查詢日志
記錄用戶關于mysql服務器的所有操作,包括mysql服務器的啟動和關閉信息、更新數據記錄sql語句和查詢數據記錄sql語句。
慢查詢日志
用來記錄履行時間超過指定時間的查詢語句
通過該類型日志,可以查找到哪些查詢語句的履行效力低,從而進行優化
啟動
默許是關閉的
配置my.ini
[mysqld]
log [=dir[filename]]
通用查詢日志文件的后綴為*.log
log-slow-queries[=dir[filename]]
long_query_time=n
慢查詢日志文件的后綴為*slow.log
如果沒有設置long_query_time,默許為10秒。
我的慢查詢日志默許是開啟的。
查看
如果想了解用戶最近的操作,可以查看通用查詢日志;
如果想了解哪些操作超時,可以查看慢查詢日志
都是文本文件,可以直接打開。
停止
直接把配置文件里的對應選項注釋掉,然后重啟
刪除
mysqladmin -u root -p flush -logs
履行不成功。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈