mysql日誌分爲四大類:慢查詢日誌,查詢日誌,錯誤日誌,二進制日誌
一.慢查詢日誌:大於慢查詢時間的語句,都會記錄在慢查詢日誌中
1.查看慢查詢是否開啓 show variables like "slow_query_log"; 如下:slow_query_log: ON/OFF
slow_query_log_file:慢查看日誌名稱:slow.log 2.開啓慢查詢 set global slow_query_log='ON'; 3.查看慢查詢時間 show variables like "%long%"; 如下:long_query_time :單位爲秒
4.設置慢查詢時間 set global long_query_time=2; 設置後要重新退出登錄mysql才字段值纔會更新
二.查詢日誌:查詢日誌記錄了數據庫執行的命令,不管這些語法是否正確,都會被記錄
1.查詢日誌一般默認關閉狀態
由於數據庫操作命令非常多而且比較頻繁,所以開啓了查詢日誌以後,數據庫可能需要不停的寫入查詢,這樣會增大服務器的IO壓力,增加很多的系統開銷,所以默認情況下,mysql的查詢日誌默認關閉
2.查看開關及日誌名稱
3.開啓/關閉查詢日誌開關
set global general_log = "OFF";
三.錯誤日誌
1.錯誤日誌包括:mysql執行過程中的錯誤信息,mysql執行過程中的告警信息,mysq啓動和停止過程中產生的信息等
2.查看錯誤日誌相關參數
show variables where variable_name="log_error" or variable_name="log_warnings";
log_error:錯誤日誌的存放路徑
log_warnings:表示是否記錄告警信息到錯誤日誌,0表示不記錄告警信息,1表示記錄告警信息,大於1表示各類告警信息,例如有關網絡故障的信息和重新連接信息寫入錯誤日誌
FILE:
四.二進制日誌
1.作用:二進制日誌是一個二進制文件,記錄了對MySQL數據庫執行更改的所有操作,並且記錄了語句發生時間、執行時長、操作數據等其他額外信息,但是他不記錄SELECT、SHOW等那些不改變數據庫的SQL語句。二進制日誌主要用於數據庫恢復和主從複製,以及審計操作
2.查看二進制日誌
log_bin:表示二進制日誌是否開啓,ON表示開啓,OFF表示未開啓,默認OFF
log_bin_basename:二進制日誌文件前綴名,二進制日誌就記錄在該文件中
binlog_format:決定了二進制日誌的記錄方式,STATEMENT以語句的形式記錄,ROW以數據修改的形式記錄,MIXED以語句和數據修改混合形式記錄
https://www.cnblogs.com/plyonfly/p/11469802.html
五.優化
1.max_connections:最大連接數,如果你經常看到‘Too many connections’錯誤,是因爲max_connections的值太低了,可以調整爲1000
MySQL>show variables like 'max_connections';
2.back_log
由默認的50修改爲500 back_log=500
back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。
也就是說,如果MySql的連接數據達到max_connections時,新來的請求將會被存在堆棧中,
以等待某⼀一連接釋放資源,該堆棧的數量即back_log,如果等待連接的數量超過back_log,
將不不被授予連接資源。查看mysql 當前系統默認back_log值,
命令:show variables like 'back_log’;
修改配置文件:/etc/my.cnf
https://blog.csdn.net/fuzhongfaya/article/details/80866197