本篇文章給大家?guī)砹岁P于mysql的相關知識,其中主要整理了日志管理的相關問題,包括了錯誤日志、通用查詢日志、二進制日志等等內容,下面一起來看一下,希望對大家有幫助。
推薦學習:mysql視頻教程
MySQL的日志默認保存在數(shù)據庫文件的存儲目錄(一般為/usr/local/mysql/data/)。也可以修改配置文件,自定義日志文件的保存位置。
我這里在編譯安裝時,數(shù)據庫文件存儲目錄設置的是/home/mysql。
一、四種日志介紹
1.1 錯誤日志
錯誤日志,用來記錄當MySQL啟動、停止或運行時發(fā)生的錯誤信息,默認已開啟。
vim /etc/my.cnf
[mysqld]
log-error=/home/mysql/mysql_error.log #指定日志的保存位置
1.2 通用查詢日志
通用查詢日志,用來記錄MySQL的所有連接和語句,默認是關閉的。
vim /etc/my.cnf [mysqld] general_log=ON general_log_file=/home/mysql/mysql_general.log
1.3 二進制日志
二進制日志(binlog),用來記錄所有更新了數(shù)據或者已經潛在更新了數(shù)據的語句,記錄了數(shù)據的更改,可用于數(shù)據恢復,默認已開啟。
vim /etc/my.cnf [mysqld] log-bin=mysql-bin #也可以log_bin=mysql-bin #使用相對路徑,則文件存儲在默認目錄/usr/local/mysql/data/中
1.4 慢查詢日志
慢查詢日志,用來記錄所有執(zhí)行時間超過long_query_time秒的語句,可以找到哪些查詢語句執(zhí)行時間長,以便于優(yōu)化,默認是關閉的。
vim /etc/my.cnf [mysqld] slow_query_log=ON slow_query_log_file=/home/mysql/mysql_slow_query.log long_query_time=5 #慢查詢時間,設置超過5秒執(zhí)行的語句被記錄,缺省時為10秒
二、配置四種日志:
步驟一:修改配置文件/etc/my.cnf
vim /etc/my.cnf [mysqld] ##錯誤日志,用來記錄當MySQL啟動、停止或運行時發(fā)生的錯誤信息,默認已開啟 log-error=/home/mysql/mysql_error.log ##通用查詢日志,用來記錄MySQL的所有連接和語句,默認是關閉的 general_log=ON general_log_file=/home/mysql/mysql_general.log ##二進制日志(binlog),用來記錄所有更新了數(shù)據或者已經潛在更新了數(shù)據的語句,記錄了數(shù)據的更改,可用于數(shù)據恢復,默認已開啟 log-bin=mysql-bin #也可以log_bin=mysql-bin #使用相對路徑,則文件存儲在默認目錄/home/mysql/中 ##慢查詢日志,用來記錄所有執(zhí)行時間超過long_query_time秒的語句,可以找到哪些查詢語句執(zhí)行時間長,以便于優(yōu)化,默認是關閉的 slow_query_log=ON slow_query_log_file=/home/mysql/mysql_slow_query.log long_query_time=5 #慢查詢時間,設置超過5秒執(zhí)行的語句被記錄,缺省時為10秒
步驟二:重啟服務
systemctl restart mysqld
三、查詢日志是否已開啟
mysql -u root -p[密碼] #查看錯誤日志存放位置 show variables like 'log_error'; #查看通用查詢日志是否開啟 show variables like 'general%'; #查看二進制日志是否開啟 show variables like 'log_bin%'; #查看慢查詢日功能是否開啟 show variables like '%slow%'; #查看慢查詢時間設置 show variables like 'long_query_time'; #在數(shù)據庫中設置開啟慢查詢的方法,即以修改變量值的方式開啟。但重啟服務后會失效。 set global slow_query_log=ON;
四、分割二進制日志
mysql-bin.index 文件會對二進制日志進行分割。
每次重啟 mysql 或 在數(shù)據庫中 "flush logs"刷新日志之后,會生成一個新的二進制日志。
推薦學習:mysql視頻教程