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