您的位置:首页 > 数据库 > MySQL

MySQL开启针对mysql的所有操作log

2016-07-26 14:44 603 查看
一,故障原因:

在/etc/my.cnf开启了log参数后:

log=/data/mysql/query_log.log

重新启动mysql的时候报错,

[root@bogon mysql]# /etc/init.d/mysqld start

Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).

查看错误日志如下:

2016-07-26 14:19:51 0 [Note] Binlog end

160726 14:19:51 mysqld_safe mysqld from pid file /data/mysql/mysql.pid ended

160726 14:23:14 mysqld_safe Starting mysqld daemon with databases from /data/mysql
2016-07-26 14:23:14 0 [ERROR] /usr/local/mysql/bin/mysqld: ambiguous option '--log=/data/mysql/query_log.log' (log-bin, log_slave_updates)

2016-07-26 14:23:14 0 [ERROR] Aborting

二,解决办法:

在网上查询得到的是log的参数已经启用了,改用gneral_log参数

有两种方法启用这个参数:

1,修改my.cnf文件,添加如下两行:

general_log=ON
general_log_file=/tmp/mysql.log

然后重启mysql。

2,在mysql命令行修改:

设置日志输出方式为文件(如果设置log_output=table的话,则日志结果会记录到名为gengera_log的表中,这表的默认引擎都是CSV):

root@(none) 09:41:11>set global log_output=file;

Query OK, 0 rows affected (0.00 sec)

设置general log的日志文件路径:

root@(none) 09:45:06>set global general_log_file='/tmp/general.log';

Query OK, 0 rows affected (0.00 sec)

 开启general log:

root@(none) 09:45:22>set global general_log=on;

Query OK, 0 rows affected (0.02 sec)

过一段时间后,关闭general log:

root@(none) 09:45:31>set global general_log=off;

Query OK, 0 rows affected (0.02 sec)

查看tmp/general.log的信息,可以大致看到哪些sql查询/更新/删除/插入比较频繁了。比如有些表不是经常变化的,查询量又很大,就完全可以cache;对主备延迟要求不高的表,读可以放到备库;等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: