MySQL日志是該關(guān)系數(shù)據(jù)庫管理系統(tǒng)的一個基本特性,它記錄了所有數(shù)據(jù)庫的活動,并在必要時提供有關(guān)數(shù)據(jù)庫問題的關(guān)鍵信息。MySQL日志可以使用戶對數(shù)據(jù)庫服務(wù)器的運作有所了解,以及在需要進行存檔、安全備份等操作時提供依據(jù)。其中,基礎(chǔ)日志包括錯誤日志、慢查詢?nèi)罩竞筒樵內(nèi)罩尽?/p>
為方便用戶查詢,MySQL數(shù)據(jù)庫提供了查詢?nèi)罩荆_啟后,查詢語句的執(zhí)行情況將被記錄下來。用戶可以通過查詢?nèi)罩究梢粤私釳ySQL的執(zhí)行情況,以及找到慢查詢的原因等。
# 開啟查詢?nèi)罩? $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 找到以下配置項 [mysqld] log_error = /var/log/mysql/error.log log_queries_not_using_indexes = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 3 # 將log_queries_not_using_indexes更改為1即可開啟查詢?nèi)罩居涗? log_queries_not_using_indexes = 1 # 重啟MySQL $ systemctl restart mysql
開啟查詢?nèi)罩竞螅琈ySQL將記錄查詢語句的執(zhí)行情況,并將其記錄到slow_query_log_file中(上方配置為/var/log/mysql/mysql-slow.log)。用戶可以通過以下命令查看日志:
# 查看最后1000條慢查詢 $ sudo tail -n 1000 /var/log/mysql/mysql-slow.log # 根據(jù)時間范圍篩選慢查詢 $ sudo mysqldumpslow /var/log/mysql/mysql-slow.log -t 10 -s al # 根據(jù)查詢時間篩選慢查詢 $ sudo mysqldumpslow /var/log/mysql/mysql-slow.log -t 10 -s t
通過以上命令,用戶可以快速查找到慢查詢,并對其進行優(yōu)化,提高MySQL服務(wù)器的性能。