第16章 mysql系统库之日志记录表 - xiaoboluo768/qianjinliangfang GitHub Wiki
16.1 日志信息概述
SET @old_log_state = @@global.general_log;
SET GLOBAL general_log ='OFF';
ALTER TABLE mysql.general_log ENGINE = MyISAM;
SET GLOBAL general_log = @old_log_state;
use mysql;
DROP TABLE IF EXISTS general_log2;
CREATE TABLE general_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup,general_log2 TO general_log;
16.2.1 general_log
mysql> set global log_output='TABLE';
Query OK, 0 rows affected (0.00 sec)
mysql> set global general_log=1;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from mysql.general_log\G
......
1 row in set (0.00 sec)
mysql> select connection_id();
......
1 row in set (0.00 sec)
shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory
# 在Windows上请直接重命名,而不是使用mv命令
mysql> SET GLOBAL general_log ='OFF';
# 在禁用查询日志记录功能的情况下,从外部重命名日志文件。例如,从命令行重命名日志文件,然后再次启用查询日志记录功能
Mysql> SET GLOBAL general_log ='ON';
# 此方法适用于任何平台,不需要重新启动服务器
16.2.2 slow_log
mysql> set global long_query_time=0;
Query OK, 0 rows affected (0.01 sec)
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.01 sec)
# 断开会话重新连接
mysql> use test
Database changed
mysql> show tables;
......
5 rows in set (0.01 sec)
mysql> select * from test;
......
5 rows in set (0.01 sec)
mysql> select * from mysql.slow_log where sql_text='select * from test' limit 1\G
......
1 row in set (0.00 sec)
mysql> alter table sbtest1 modify pad char(100);
Query OK, 1000000 rows affected (12.32 sec)
Records: 1000000 Duplicates: 0 Warnings: 0
上一篇:第15章 mysql系统库之复制信息表 | 下一篇:第17章 mysql系统库应用示例荟萃