MySQL日志在哪
目前成都創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、中山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
MySQL日志一般保存在/var/log/目錄下,但還需要看具體的配置文件才能確定,具體方法如下:
1、首先登陸 mysql:mysql -u root -p
2、然后查看是否啟用了日志mysqlshow variables like 'log_%';
3、查看當(dāng)前的日志mysql show master status;
4、你需要知道的mysql的日志類型:錯(cuò)誤日志: -log-err
查詢?nèi)罩荆?-log
慢查詢?nèi)罩? -log-slow-queries
更新日志: -log-update
二進(jìn)制日志: -log-bin
5、修改配置/etc/my.cnf(以下為日志文件保存位置)[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
mysql的審計(jì)功能
mysql服務(wù)器自身沒(méi)有提供審計(jì)功能,但是我們可以使用init-connect + binlog的方法進(jìn)行mysql的操作審計(jì)。由于mysql binlog記錄了所有對(duì)數(shù)據(jù)庫(kù)長(zhǎng)生實(shí)際修改的sql語(yǔ)句,及其執(zhí)行時(shí)間,和connection_id但是卻沒(méi)有記錄connection_id對(duì)應(yīng)的詳細(xì)用戶信息。在后期審計(jì)進(jìn)行行為追蹤時(shí),根據(jù)binlog記錄的行為及對(duì)應(yīng)的connection-id 結(jié)合 之前連接日志記錄 進(jìn)行分析,得出最后的結(jié)論。
1. 設(shè)置init-connect
1.1 創(chuàng)建用于存放連接日志的數(shù)據(jù)庫(kù)和表
create database accesslog;
CREATE TABLE accesslog.accesslog (`id` int(11) primary key auto_increment, `time` timestamp, `localname` varchar(30), `matchname` varchar(30))
1.2 創(chuàng)建用戶權(quán)限
可用現(xiàn)成的root用戶用于信息的讀取
grant select on accesslog.* to root;
如果存在具有to *.* 權(quán)限的用戶需要進(jìn)行限制。
這里還需要注意用戶必須對(duì)accesslog表具有insert權(quán)限
grant select on accesslog.* to user@’%’;
1.3 設(shè)置init-connect
在[mysqld]下添加以下設(shè)置:
init-connect=’insertinto accesslog.accesslog(id, time, localname, matchname)
values(connection_id(),now(),user(),current_user());’
------注意user()和current_user()的區(qū)別
log-bin=xxx
這里必須開(kāi)啟binlog
1.4 重啟數(shù)據(jù)庫(kù)生效
shell /etc/init.d/mysql restart
2. 記錄追蹤
2.1 thread_id確認(rèn)
可以用以下語(yǔ)句定位語(yǔ)句執(zhí)行人
Tencent:~ # mysqlbinlog --start-datetime='2011-01-26 16:00:00'
--stop-datetime='2011-01-26 17:00:00' /var/lib/mysql/mysql-bin.000010
| grep -B 5 'wsj'
COMMIT/*!*/;
# at 767
#110126 16:16:43 server id 1 end_log_pos 872 Query thread_id=19 exec_time=0 error_code=0
use test/*!*/;
SET TIMESTAMP=1296029803/*!*/;
create table wsj(id int unsigned not null)
--
BEGIN
/*!*/;
# at 940
#110126 16:16:57 server id 1 end_log_pos 1033 Query thread_id=19 exec_time=0 error_code=0
SET TIMESTAMP=1296029817/*!*/;
insert into wsj(id) values (1)
--
BEGIN
/*!*/;
# at 1128
#110126 16:16:58 server id 1 end_log_pos 1221 Query thread_id=19 exec_time=0 error_code=0
SET TIMESTAMP=1296029818/*!*/;
insert into wsj(id) values (2)
2.2 用戶確認(rèn)
thread_id 確認(rèn)以后,找到元兇就只是一條sql語(yǔ)句的問(wèn)題了。
mysql select * from accesslog where id=19;
+----+---------------------+---------------------+-----------+
| id | time | localname | matchname |
+----+---------------------+---------------------+-----------+
| 19 | 2011-01-26 16:15:54 | test@10.163.164.216 | test@% |
+----+---------------------+---------------------+-----------+
1 row in set (0.00 sec)
3. Q
Q:使用init-connect會(huì)影響服務(wù)器性能嗎?
A:理論上,只會(huì)在用戶每次連接時(shí)往數(shù)據(jù)庫(kù)里插入一條記錄,不會(huì)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生很大影響。除非連接頻率非常高(當(dāng)然,這個(gè)時(shí)候需要注意的就是如何進(jìn)行連接復(fù)用和控制,而非是不是要用這種方法的問(wèn)題了)---如果采用長(zhǎng)連接并且緩存的話,可以提高性能
Q:access-log表如何維護(hù)?
A: 由于是一個(gè)log系統(tǒng),推薦使用archive存儲(chǔ)引擎,有利于數(shù)據(jù)厄壓縮存放。如果數(shù)據(jù)庫(kù)連接數(shù)量很大的話,建議一定時(shí)間做一次數(shù)據(jù)導(dǎo)出,然后清表。
Q:表有其他用途么?
A:有!access-log表當(dāng)然不只用于審計(jì),當(dāng)然也可以用于對(duì)于數(shù)據(jù)庫(kù)連接的情況進(jìn)行數(shù)據(jù)分析,例如每日連接數(shù)分布圖等等,只有想不到?jīng)]有做不到。---可以用來(lái)測(cè)試讀寫分離,驗(yàn)證負(fù)載均衡等
Q:會(huì)有遺漏的記錄嗎?
A:會(huì)的,init-connect 是不會(huì)在super用戶登錄時(shí)執(zhí)行的。所以access-log里不會(huì)有數(shù)據(jù)庫(kù)超級(jí)用戶的記錄,這也是為什么我們不主張多個(gè)超級(jí)用戶,并且多人使用的原因。--這種審計(jì)不會(huì)記錄root等具有super權(quán)限的賬號(hào)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)
根據(jù)筆者上一篇文章—Linux系統(tǒng)上記錄用戶操作的審計(jì)日志 。本文來(lái)利用相同的方法記錄MYSQL操作的審計(jì)日志。
使用用mysql工具連接MySQL server的所有操作會(huì)默認(rèn)記錄到~/.mysql_history文件中,這個(gè)文件會(huì)把所有操作記錄下來(lái),包括創(chuàng)建用戶和修改用戶的明文密碼,這在生產(chǎn)系統(tǒng)上是不安全的。如果不想保存,僅僅刪除是不行的(文件不存在會(huì)再建立),要直接將其軟連接到垃圾箱。
ln? -s? /dev/null? ~/.mysql_history
利用上一篇文章相同的方法記錄MYSQL操作的審計(jì)日志,是因?yàn)閙ysql工具本身就是有一個(gè)shell, 每次mysql連接退出后,都會(huì)把此次操作的信息記錄到~/.mysql_history文件中。那么可以重新定義MYSQL_HISTFILE環(huán)境變量來(lái)保存mysql日志。
先看置于/etc/profile.d目錄下的環(huán)境變量的腳本mysql_history.sh,和loginlog類似。
? 在測(cè)試時(shí),發(fā)現(xiàn)平時(shí)使用的普通用戶在操作mysql后無(wú)法記錄,而root用戶(平時(shí)沒(méi)有操作過(guò)mysql)可以記錄成功。后來(lái)在在~/.mysql_history文件找到了操作記錄,估計(jì)是這個(gè)文件還存在的原因,刪除后才記錄到新的MYSQL_HISTFILE定義的路徑。
? 和loginlog一樣,需要定期刪除過(guò)期日志,以下腳本置于/etc/cron.weekly 目錄下。
? ? delete_time=15
? ? find /opt/mysqllog/? -mtime +$delete_time -name '*.log' -exec rm -r {} \;
? 但是相比于loginlog,mysqllog有兩點(diǎn)暫時(shí)沒(méi)有解決。
1、定義最大的記錄條數(shù)history.maxSize不知在哪定義,my.cnf?
2、每一條命令的時(shí)間記錄添加。
審計(jì)機(jī)關(guān)及各部門堅(jiān)持填寫審計(jì)工作日志,是加強(qiáng)審計(jì)機(jī)關(guān)管理教育的重要內(nèi)容,也是促進(jìn)廉政勤政,提高審計(jì)機(jī)關(guān)作風(fēng)效能建設(shè),營(yíng)造審計(jì)機(jī)關(guān)良好的工作秩序和環(huán)境的重要措施。
一、審計(jì)工作日志的概念
審計(jì)工作日志,是指記載審計(jì)機(jī)關(guān)各科室在工作日所開(kāi)展的工作事項(xiàng)的一種應(yīng)用文體,屬于日記的范疇。但工作日志與通常的個(gè)人日記二者又有明顯區(qū)別。一般講,日記具有個(gè)人性質(zhì)的特點(diǎn),并對(duì)每天所遇到的事和所做的'事的記錄,兼記對(duì)這些事情的感受,或直接抒發(fā)自己的感情。而審計(jì)工作日志,多指非個(gè)人的,是審計(jì)機(jī)關(guān)及所屬部門對(duì)工作事項(xiàng)、工作完成情況和工作中遇到問(wèn)題和解決方法的記錄,同時(shí)也是對(duì)工作情況的總結(jié),包括經(jīng)驗(yàn)教訓(xùn)和收獲等的記錄。審計(jì)工作日志,也不同于《審計(jì)機(jī)關(guān)審計(jì)項(xiàng)目質(zhì)量控制辦法(試行)》(中華人民共和國(guó)審計(jì)署令第6號(hào))中規(guī)定的“ 審計(jì)日記”,審計(jì)日記是審計(jì)人員以人為單位按時(shí)間順序反映其每日實(shí)施審計(jì)全過(guò)程的書面記錄。
二、寫審計(jì)工作日志的好處
寫審計(jì)工作日志,是審計(jì)機(jī)關(guān)進(jìn)行管理教育的重要措施,是加強(qiáng)機(jī)關(guān)作風(fēng)效能建設(shè)的有效手段。堅(jiān)持寫審計(jì)工作日志好處主要有三點(diǎn):
一是可以培養(yǎng)認(rèn)真、嚴(yán)謹(jǐn)、細(xì)致的工作作風(fēng) 。細(xì)節(jié)決定成敗,作風(fēng)決定形象,形象重于泰山。只有堅(jiān)持嚴(yán)謹(jǐn)細(xì)致的作風(fēng),勤勤懇懇、履職盡職,把工作中的點(diǎn)點(diǎn)滴滴都認(rèn)真做到了、做好了,才能把你的本職工作真正完成好,才能樹(shù)立和維護(hù)審計(jì)監(jiān)督機(jī)關(guān)良好的社會(huì)形象。
二是可以增強(qiáng)審計(jì)工作的計(jì)劃性 。每天做了哪些工作,還有什么需要注意的事項(xiàng),思考一下明天的工作內(nèi)容,做一些備忘錄以應(yīng)對(duì)所開(kāi)展的工作,可以使審計(jì)工作計(jì)劃更周密,工作開(kāi)展起來(lái)會(huì)更加得心應(yīng)手。
三是可以增強(qiáng)審計(jì)干部的邏輯思維能力 。把每天的工作情況轉(zhuǎn)變成文字的過(guò)程,也是對(duì)已完成的工作進(jìn)行梳理的過(guò)程,這就會(huì)使你的思路更清晰,不僅會(huì)增強(qiáng)成就感,而且會(huì)使你更加自信,更勤奮地面對(duì)新的一天。此外,寫審計(jì)工作日志,還可以對(duì)所開(kāi)展的審計(jì)活動(dòng)起著檢索工作的作用。
總之,堅(jiān)持寫審計(jì)工作日志是一個(gè)良好的工作習(xí)慣,貴在持之以恒,所以長(zhǎng)期堅(jiān)持寫審計(jì)工作日志,對(duì)于深化審計(jì)工作有百益而無(wú)一害。
三、怎樣寫審計(jì)工作日志
寫審計(jì)工作日志其實(shí)不難,不要視為畏途,最簡(jiǎn)單的方式,就是你把它當(dāng)成一個(gè)工作日記,平鋪直敘地寫當(dāng)天都做了哪些工作,并在結(jié)尾的時(shí)侯總結(jié)一下當(dāng)天的經(jīng)驗(yàn)教訓(xùn)或者收獲等。
具體說(shuō)來(lái),審計(jì)工作日志的內(nèi)容要素應(yīng)包括以下四點(diǎn):
1、當(dāng)天的工作重點(diǎn),即主要精力用于做了些什么;
2、值得記錄的工作方法,即在當(dāng)天的工作中學(xué)習(xí)和領(lǐng)悟到的工作方法;
3、工作中的失誤及解決方式,不要怕問(wèn)題暴露,這是為了避免犯同樣的錯(cuò)誤;
4、明天或今后一段的工作中需要注意的事項(xiàng),如連續(xù)性的工作,今天完成到什么地步,明天繼續(xù)實(shí)施時(shí)從哪里開(kāi)始,其中有什么變化等。
四、寫審計(jì)工作日志的要求
1、全面及時(shí)了解審計(jì)工作和審計(jì)活動(dòng)的開(kāi)展情況,持之以恒地將每天工作情況完整記錄下來(lái),最好不要代記、補(bǔ)記;
2、為便于書寫工作日志,可設(shè)計(jì)制作內(nèi)容簡(jiǎn)明、書寫方便的工作日志表;
3、寫審計(jì)工作日志字跡要清晰,內(nèi)容要屬實(shí),不得弄虛作假;
4、審計(jì)工作日志要妥善保管,以便查詢或作為工作考勤的重要依據(jù)。
分享文章:mysql審計(jì)日志怎么發(fā) oracle數(shù)據(jù)庫(kù)開(kāi)啟日志審計(jì)
文章源于:http://jinyejixie.com/article26/dochjcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)