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;对主备延迟要求不高的表,读可以放到备库;等等
在/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;对主备延迟要求不高的表,读可以放到备库;等等
相关文章推荐
- mysql分表分区方案实测:MyISAM引擎分表 or mysql表分区
- Mysql 5.7.* 免安装版配置
- MySQL主从配置【转载】
- [转]MySQL去除重复数据
- Keepalive实现mysql双主热备
- Mysql中文乱码问题完美解决方案
- Windows mysql备份
- 将sqllite3数据库迁移到mysql
- mysql 主从原理
- MySQL使用入门
- MySQL 学习总结-基本语句
- MySQL 数据备份与还原
- MySQL中优化sql语句查询常用的30种方法
- 安装MySQL
- MySQL的多实例
- MySQL的基本使用
- Mac下安装Mysql
- MySQL的环境变量
- mysql内连接,mysql外连接学习实例
- mysql简单操作