数据库记录LOG-大有用处

第一種: 查 Slow query 的 SQL 語法:

  • log_slow_queries = /var/log/mysql/mysql-slow.log

  • long_query_time = 2 (超過 2秒的 SQL 語法記錄起來, 設短一點來記錄除錯也是一種方法 XD)

第二種: 設 MySQL Replication 用 binlog:

  • log_bin = /var/log/mysql/mysql-bin.log (此檔要用 mysqlbinlog 解來看)

  • mysql 會將所有 INSERT/UPDATE/DELETE 語法記於此(但是語法可能跟你想的不同), 這是要寫給 SLAVE 用的 log 檔

第三種: 推薦此方法, 將 MySQL 執行的每行指令全都記錄起來:

  • log = /tmp/mysql.log

restart mysql 後, tail -f /tmp/mysql.log 就可以看到囉! 

補充: 最早前的方法是 mysqldump, 然後執行完後再 mysqldump, 再 diff, 但是在 DB > 1G 後就放棄此方法了 XD

以上转自 http://www.oschina.net/question/4873_20914 

测试成功为下部分 无需重启生效

--这里按照最新版本来设置
--查询关于log的设置
SHOW VARIABLES  LIKE 'general_log%' ;
返回结果类似:
+ ------------------+------------------------------------------------------------
------------------+
| Variable_name    | Value
                   |
+ ------------------+------------------------------------------------------------
------------------+
| general_log      |  OFF
                   |
| general_log_file | dev-mc.log
                   |
+ ------------------+------------------------------------------------------------
------------------+
rows in set (0.00 sec)
 
注意,general_log_file 的默认值是 '机器名' .log
*/
-- 开启日志
SET GLOBAL general_log = 'ON' ;
-- 设置日志的文件路径:本例在Windows下
SET GLOBAL general_log_file= 'D:/MySql/live-query.log' ;
-- 设置完之后,就已经生效了



你可能感兴趣的:(数据库记录LOG-大有用处)