MySQL作為一種常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),其日志文件一般包括二進(jìn)制日志(binary logs)、查詢(xún)?nèi)罩荆╭uery logs)和錯(cuò)誤日志(error logs)等。當(dāng)使用Linux系統(tǒng)管理MySQL時(shí),往往需要定期對(duì)這些日志文件進(jìn)行清理。
下面介紹一種基于Linux系統(tǒng)的MySQL日志清理方法:
#!/bin/bash # 按日期刪除MySQL的binary logs、query logs和error logs # 獲取當(dāng)前日期 NOW=$(date +"%Y-%m-%d") # 將三種日志文件類(lèi)型存放到一個(gè)數(shù)組中 logs=("$(mysql -u root -p-e 'show binary logs' | awk '{print $1}' | grep -v 'Log_name')") logs+=("$(ls -lad /var/log/mysql/mysql-slow.log*)") logs+=("$(ls -lad /var/log/mysql/error.log*)") # 遍歷數(shù)組,將早于當(dāng)前日期的日志文件刪除 for log in "${logs[@]}" do logDate=$(echo $log | awk -F '.' '{print $2}') if [[ "$logDate"< "$NOW" ]]; then sudo rm $log fi done
上述代碼可實(shí)現(xiàn)按日期刪除三種類(lèi)型的日志文件。其中,要注意修改<password>
為MySQL的root用戶(hù)密碼,還需對(duì)Linux上的MySQL日志文件路徑進(jìn)行適當(dāng)修改。
注意:不建議直接刪除MySQL的日志文件。若服務(wù)器出現(xiàn)問(wèn)題,日志文件可協(xié)助進(jìn)行故障排查和數(shù)據(jù)恢復(fù)。