把所有对数据库的操作/SQL(DDL,DML,Query)全都记录到文件或者表中,用于调试或查错。
Mysql
转自: Link
首先进入mysql输入指令
show variables like ‘gen%’;
可以看到输出
+——————+————————————-+
| Variable_name | Value |
+——————+————————————-+
| general_log | OFF |
| general_log_file | /usr/local/mysql/data/localhost.log |
+——————+————————————-+
可以看到general_log是开启还是环比状态,以及这个帐号的general_log文件在哪,设置开启
set global general_log=ON;
commit;//如果关闭了自动提交,记得commit一次结束事务
然后就可以去general_log_file的路径查看操作记录了
采用数据库内部查看
出了可以用日志文件的形式查看数据库操作记录之外,也可以把日志作为一个表单,在数据库内部查看
show variables like ‘%log_output%’;
可以看到输出,然后将其改为表单
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
set global log_output=’TABLE’;
之后就可以通过以下两句话查看数据库操作记录
select * from mysql.general_log; <=====查看操作记录
truncate table mysql.general_log; <=====清空操作记录表单
Postgresql
输出日志到文件,修改$PGDATA/postgresql.conf 可能$PGDATA=/var/lib/pgsql/9.4/data
log_destination = ‘stderr’
logging_collector = on
log_directory = ‘pg_log’
log_filename = ‘postgresql-%a.log’
#log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log’
log_statement = ‘mod’ # none, ddl, mod, all
日志文件只记录数据更新的操作,文件名如下
-rw——-. 1 postgres postgres 129 Jun 29 17:00 postgresql-Fri.log
如何查看
Linux下:
- 用 tail -f <logfilename> 来持续显示最新log
Windows下:
- 下载 tail.exe 放到 c:/windows目录下 下载地址:/Files/hantianwei/tail.zip
- 或者使用GUI工具, BareTail: http://www.baremetalsoft.com/baretail/index.php 可以高亮关键字,比tail命令友好.