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