本文目錄一覽:
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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271490.html