MYSQL 结构变化日志 待解决
Q: 当初为什么要知道 结构变化?
A: 抽出数据库改变的SQL语句,用于其他人使用这段时间所变更的字段。上线发布,执行SQL脚本。
想要知道
定义结构
需求增加
需求变更
之间字段的变化
log_error = /var/log/mysql/error.log
搜索相关资料 mysql 如何监控表结构修改
日志
主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;
日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。
命令 查看日志信息定义状态 SHOW GLOBAL VARIABLES LIKE ‘%log%’;
相关资料 mysql日志详细解析
第一種: 查 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'
;
-- 设置完之后,就已经生效了