Helllo,我的問題是以下幾點:使用php,是否有可能創建一個與MySQL數據庫的所有交互日誌,通常可以通過phpMyadmin訪問。是否有我可以查看的特定查詢或示例? 謝謝你的時間。創建MySql日誌
0
A
回答
2
有簡單的方法來捕獲SQL日誌。這個日誌稱爲通用日誌。它捕獲所有客戶端執行的所有sql。
啓用通用日誌。
mysql> SET GLOBAL general_log = 'ON';
其中是日誌位於?
mysql> SHOW variables like '%general_log%';
+------------------+--------------------+
| Variable_name | Value |
+------------------+--------------------+
| general_log | ON |
| general_log_file | /tmp/your_path.log |
+------------------+--------------------+
你想更改位置?
mysql> SET GLOBAL general_log_file = 'what you want';
關閉日誌
mysql> SET GLOBAL general_log = 'OFF';
要小心,一般的日誌將增長大,測試完成後,一定要關閉日誌
2
使用觸發命令。首先爲特定表創建一個日誌表,然後在其中插入所有的觸發輸出。
這裏的樣本:
CREATE TABLE `sales_category` (
`salescatid` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`salescatname` VARCHAR(128) NOT NULL,
`salescatdesc` VARCHAR(512) NOT NULL,
UNIQUE INDEX `salescatname` (`salescatname`),
UNIQUE INDEX `salescatid` (`salescatid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
2. Create table for log
CREATE TABLE `category_log` (
`action` ENUM('CREATE','UPDATE','DELETE') NULL DEFAULT NULL,
`salescatid` INT(10) UNSIGNED NOT NULL,
`salescatname` VARCHAR(255) NOT NULL,
`salescatdesc` VARCHAR(255) NOT NULL,
INDEX `id` (`salescatid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
3. Add triggers
//FOR ADD
DELIMITER #
CREATE TRIGGER ai_category
AFTER INSERT ON sales_category
FOR EACH ROW
BEGIN
INSERT INTO category_log(action,salescatid,salescatname,salescatdesc)
VALUES('CREATE',NEW.salescatid,NEW.salescatname,NEW.salescatdesc);
END;#
//FOR UPDATE
DELIMITER #
CREATE TRIGGER au_category
AFTER UPDATE ON sales_category
FOR EACH ROW
BEGIN
INSERT INTO category_log(action,salescatid,salescatname,salescatdesc)
VALUES('UPDATE',NEW.salescatid,NEW.salescatname,NEW.salescatdesc);
END;#
//FOR DELETE
DELIMITER #
CREATE TRIGGER ad_category
AFTER DELETE ON sales_category
FOR EACH ROW
BEGIN
INSERT INTO category_log(action,salescatid,salescatname,salescatdesc)
VALUES('DELETE',OLD.salescatid,OLD.salescatname,OLD.salescatdesc);
END;#
這是你在找什麼?這是CRUD過程,但它是通過SQL命令完成的。如果你打電話給我,我認爲你應該把它放在一個函數中。我也是一個初學者,所以如果有一個bug也請告訴我。祝你好運。
0
要啓用查詢日誌,把這個/etc/my.cnf
在[mysqld]
部分
log = /path/to/query.log
記住這個日誌文件可以g排在繁忙的服務器
更新上非常大的:
例如MySQL 5.1.12的,你應該使用
general_log=1
與MySQL 5.1.29,日誌選項已被棄用。指定日誌文件使用
general_log_file=/path/to/query.log
改爲。見http://dev.mysql.com/doc/refman/5.6/en/query-log.html
在數據庫上啓用查詢日誌記錄(注意字符串「表」應放在字面,而不是取代任何表名)
SET global general_log = 1;
SET global log_output = 'table';
查看日誌
select * from mysql.general_log
禁用在數據庫上查詢日誌記錄
SET global general_log = 0;
請參閱:http://www.jovicailic.org/2012/07/how-to-enable-general-query-log-in-mysql-under-linux/
相關問題
- 1. 如何使用Java創建MySQL日誌
- 2. SQL創建日誌
- 3. django日誌記錄:未創建日誌
- 4. 如何創建日誌日誌圖
- 5. log4j2不創建RollingFile日誌
- 6. 未創建日誌文件?
- 7. 創建備份日誌C#
- 8. 日誌文件創建
- 9. CodeBuild無法創建日誌
- 10. 創建日誌形式
- 11. AWS CloudWatch日誌未創建
- 12. VBA創建日誌文件
- 13. Cron沒有創建日誌
- 14. 創建日誌文件C#
- 15. 未創建日誌文件
- 16. 使用VBS創建日誌
- 17. C#創建日誌系統
- 18. 在c#中創建日誌#
- 19. Log4js javascript創建每日日誌文件
- 20. 使用Log4j創建每日日誌?
- 21. memcached日誌mysql
- 22. 日誌記錄不創建日誌文件或存儲任何日誌
- 23. MySQL事件的錯誤了創建使用一般的日誌
- 24. 如何創建從Java到MySQL的日誌活動?
- 25. MySQL二進制日誌文件沒有被創建 - Windows XP
- 26. 從elasticsearch,mysql,谷歌分析,日誌和創建統計數據
- 27. 如何使用mysql爲表日誌創建觸發器?
- 28. 從日誌中重新創建MySQL數據庫
- 29. MySQL數據庫更改日誌(如何創建一個?)
- 30. 如何爲systemd日誌創建日誌條目?
哇,這是很好的答案。比我的回答好。我也會爲此尋找和研究。 :) – Jerielle
@Jerielle坦率地說,我也學到了新的技能,你回答;-) –
你總是歡迎。 :) – Jerielle