您的位置:

linux开启mysql日志的简单介绍

本文目录一览:

linux里mysql日志在哪

首先登陆

mysql:

mysql

-u

root

-p

然后查看是否启用了日志

mysqlshow

variables

like

'log_%';

查看当前的日志

mysql

show

master

status;

你需要知道的mysql的日志类型:

错误日志:

-log-err

查询日志:

-log

慢查询日志:

-log-slow-queries

更新日志:

-log-update

二进制日志:

-log-bin

修改配置(以下为日志文件保存位置)

[mysqld]

log=/var/log/mysqld_common.log

log-error=/var/log/mysqld_err.log

log-bin=/var/log/mysqld_bin.bin

Linux系统上记录MYSQL操作的审计日志

    根据笔者上一篇文章—Linux系统上记录用户操作的审计日志 。本文来利用相同的方法记录MYSQL操作的审计日志。

    使用用mysql工具连接MySQL server的所有操作会默认记录到~/.mysql_history文件中,这个文件会把所有操作记录下来,包括创建用户和修改用户的明文密码,这在生产系统上是不安全的。如果不想保存,仅仅删除是不行的(文件不存在会再建立),要直接将其软连接到垃圾箱。

     ln  -s  /dev/null  ~/.mysql_history

    利用上一篇文章相同的方法记录MYSQL操作的审计日志,是因为mysql工具本身就是有一个shell, 每次mysql连接退出后,都会把此次操作的信息记录到~/.mysql_history文件中。那么可以重新定义MYSQL_HISTFILE环境变量来保存mysql日志。

    先看置于/etc/profile.d目录下的环境变量的脚本mysql_history.sh,和loginlog类似。

      在测试时,发现平时使用的普通用户在操作mysql后无法记录,而root用户(平时没有操作过mysql)可以记录成功。后来在在~/.mysql_history文件找到了操作记录,估计是这个文件还存在的原因,删除后才记录到新的MYSQL_HISTFILE定义的路径。

      和loginlog一样,需要定期删除过期日志,以下脚本置于/etc/cron.weekly 目录下。

        delete_time=15

        find /opt/mysqllog/  -mtime +$delete_time -name '*.log' -exec rm -r {} \;

      但是相比于loginlog,mysqllog有两点暂时没有解决。

    1、定义最大的记录条数history.maxSize不知在哪定义,my.cnf?

    2、每一条命令的时间记录添加。

linux mysql 开启查询日志的问题

是否启用了日志

mysqlshow variables like 'log_%';

查看当前的日志

mysql show master status;

首先你得知道mysql的日志类型:

错误日志: -log-err

查询日志: -log

慢查询日志: -log-slow-queries

更新日志: -log-update

二进制日志: -log-bin

修改配置(我们常用的配置)

[mysqld]

log=/var/log/mysqld_common.log

log-error=/var/log/mysqld_err.log

log-bin=/var/log/mysqld_bin.bin

linux中的MySQL开启二进制日志?

二进制日志开启方法:

查看系统变量log_bin,如果其值为OFF,表示没有开启二进制日志(binary log),如果需要开启二进制日志

修改my.cnf,在[mysqld]下面增加

log-bin=/data/mysqldb/log/mysql-bin.log

binlog_format = ROW

expire_logs_days=15

server_id = 2

修改完之后重启MySQL,然后再查看show variables like 'log_bin%'; 这个时候你会发现log_bin的value值变成了ON