程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql日志滾動

mysql日志滾動

編輯:MySQL綜合教程

1,查看log情況
復制代碼 代碼如下:
mysql> show global variables like '%log%';
+---------------------------------+---------------------------------+
| Variable_name                   | Value                           |
+---------------------------------+---------------------------------+
| back_log                        | 50                              |
| binlog_cache_size               | 32768                           |
| binlog_format                   | MIXED                           |
| expire_logs_days                | 0                               |
| general_log                     | ON                              |
| general_log_file                | /usr/local/mysql/mysql.log      |
| log                             | ON                              |
| log_bin                         | ON                              |
| log_bin_trust_function_creators | OFF                             |
| log_bin_trust_routine_creators  | OFF                             |
| log_error                       | /var/log/mysqld.log             |
| log_output                      | FILE                            |
| log_queries_not_using_indexes   | OFF                             |
| log_slave_updates               | OFF                             |
| log_slow_queries                | ON                              |
| log_warnings                    | 1                               |
| max_binlog_cache_size           | 4294963200                      |
| max_binlog_size                 | 1073741824                      |
| max_relay_log_size              | 0                               |
| relay_log                       |                                 |
| relay_log_index                 |                                 |
| relay_log_info_file             | relay-log.info                  |
| relay_log_purge                 | ON                              |
| relay_log_space_limit           | 0                               |
| slow_query_log                  | ON                              |
| slow_query_log_file             | /usr/local/mysql/mysql-slow.log |
| sql_log_bin                     | ON                              |
| sql_log_off                     | OFF                             |
| sql_log_update                  | ON                              |
| sync_binlog                     | 0                               |
+---------------------------------+---------------------------------+
30 rows in set (0.00 sec)

上面主要有三個日志文件,mysql.log,mysqd.log,mysql-slow.log,除了mysqld.log不能通過mysqladmin flush-logs來刷新日志外,其他的都可以,mysqld.log是服務器啟動程序mysqld產生的。

2,生成日志刷新用戶
復制代碼 代碼如下:
mysql> GRANT RELOAD ON *.* TO 'log'@'localhost' IDENTIFIED BY 'log';
Query OK, 0 rows affected (0.07 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

用root賬戶登錄進去,添加一個log的用戶。分開清楚一點。

3,日志滾動腳本,只保留一個星期的日志
復制代碼 代碼如下:
[root@linux ~]# vim log.sh   //添加以下內容
#!/bin/sh
# log refresh
if [ -f $1 ];
then
    echo "refresh ok" 1>&2
else
    echo "log file do not exist;"
    exit 1
fi
LOG=$1
DB_USER="log"
DB_PASS="log"                                                                                                      
# Others vars
DATE=`date +%w`                                       
BIN_DIR="/usr/local/mysql/bin"
mv ${LOG} ${LOG}_${DATE}
${BIN_DIR}/mysqladmin  -ulog -plog flush-logs
添加可執行權限chmod +x log.sh

腳本很簡單,不過有一點要解釋一下,就是mv ${LOG} ${LOG}_${DATE},第一周會產生7個文件,第二周會覆蓋上周的,星期一覆蓋星期一,星期二覆蓋星期二,以此內推。

4,日志滾動
復制代碼 代碼如下:
[root@linux ~]# ./log.sh /usr/local/mysql/mysql.log
refresh ok
[root@linux ~]# ls /usr/local/mysql/ |grep mysql
mysql.log
mysql.log_1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved