第一種: 查 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
|
+
------------------+------------------------------------------------------------
------------------+
2
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'
;
-- 设置完之后,就已经生效了