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. C#创建日志系统
- 6. AWS CloudWatch日志未创建
- 7. Cron没有创建日志
- 8. 日志文件创建
- 9. 未创建日志文件
- 10. log4j2不创建RollingFile日志
- 11. 创建日志形式
- 12. 在c#中创建日志#
- 13. 创建日志文件C#
- 14. 使用VBS创建日志
- 15. VBA创建日志文件
- 16. 未创建日志文件?
- 17. Log4js javascript创建每日日志文件
- 18. 使用Log4j创建每日日志?
- 19. memcached日志mysql
- 20. 日志记录不创建日志文件或存储任何日志
- 21. 从elasticsearch,mysql,谷歌分析,日志和创建统计数据
- 22. 如何创建从Java到MySQL的日志活动?
- 23. MySQL数据库更改日志(如何创建一个?)
- 24. MySQL二进制日志文件没有被创建 - Windows XP
- 25. 如何使用mysql为表日志创建触发器?
- 26. MySQL事件的错误了创建使用一般的日志
- 27. python日志记录如何创建日志文件为html
- 28. 如何在Web Api中创建日志日志
- 29. 日志消息将以前创建日志文件
- 30. 如何为systemd日志创建日志条目?
哇,这是很好的答案。比我的回答好。我也会为此寻找和研究。 :) – Jerielle
@Jerielle坦率地说,我也学到了新的技能,你回答;-) –
你总是欢迎。 :) – Jerielle