MySQL8.0的工具日志配置管理方式
日志分類
- error log:錯(cuò)誤日志
- genernal log:普通日志
- binlog:二進(jìn)制日志
- slow log:慢日志
設(shè)置錯(cuò)誤日志
配置: 默認(rèn)位置: log_error=$DATDDIR/hostname.err 看日志: 主要關(guān)注 [ERROR],deadlock [root@localhost ~]# # errorlog [root@localhost ~]# # 默認(rèn)開(kāi)了,默認(rèn)位置 datadir=/data/3306/data/HOSTNAME.err [root@localhost ~]# # 控制參數(shù) log_error=/data/3306/err.log, 注意: 最好是初始化之前設(shè)定好。 [root@localhost ~]# # 注意: 日志和數(shù)據(jù)分開(kāi)存儲(chǔ) 例如: /mysqllog/3306/mysql-err.log [root@localhost ~]# vim /etc/my.cnf [root@localhost ~]# cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/3306/data server_id=51 port=3306 socket=/tmp/mysql.sock log_error=/data/3306/log/mysql-err.log
設(shè)置錯(cuò)誤日志等級(jí)
[root@localhost ~]# mkdir -p /data/3306/log/ [root@localhost ~]# chown -R mysql.mysql /data/ [root@localhost ~]# /etc/init.d/mysqld restart Shutting down MySQL.... [ OK ] Starting MySQL.2021-11-20T14:58:53.264890Z mysqld_safe error: log-error set to '/data/3306/log/mysql-err.log', however file don't exists. Create writable for user 'mysql'. The server quit without updating PID file (/data/3306/data/[FAILED]t.localdomain.pid). [root@localhost ~]# touch /data/3306/log/mysql-err.log [root@localhost ~]# chown -R mysql. /data/ [root@localhost ~]# /etc/init.d/mysqld restart 錯(cuò)誤日志: 啟動(dòng)故障 主從故障 死鎖 數(shù)據(jù)庫(kù)hang,堆棧信息 主要關(guān)注: [ERROR] [ERROR] [MY-000068] [Server] unknown option ---》 配置文件有問(wèn)題 日志記錄級(jí)別 mysql> show variables like '%log_error%'; +----------------------------+----------------------------------------+ | Variable_name | Value | +----------------------------+----------------------------------------+ | binlog_error_action | ABORT_SERVER | | log_error | /data/3306/log/mysql-err.log | | log_error_services | log_filter_internal; log_sink_internal | | log_error_suppression_list | | | log_error_verbosity | 2 | +----------------------------+----------------------------------------+ 5 rows in set (0.00 sec)

生效時(shí)間
mysql> set global log_error_verbosity=3; 下一次登錄生效。

二進(jìn)制日志(binlog)
作用
記錄了MySQL 發(fā)生過(guò)的修改的操作的日志。,除了show select ,修改操作都會(huì)記錄binlog
數(shù)據(jù)恢復(fù)、主從、SQL問(wèn)題排查、審計(jì)(工具:binlog2sql my2sql)
配置
- 8.0默認(rèn)開(kāi)啟binlog
- 默認(rèn)在datadir binlog.0000001
- 建議日志和數(shù)據(jù)分開(kāi)存儲(chǔ),避免磁盤(pán)IO 搶占。
定義 參數(shù) server_id=111
log_bin=路徑/文件名前綴
cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/3306/data server_id=51 port=3306 socket=/tmp/mysql.sock log_error=/data/3306/log/mysql-err.log log_bin=/data/3306/log/mysql-bin
重啟生效
cd /data/3306/log/ [root@localhost log]# ll total 24 -rw-r----- 1 mysql mysql 156 Nov 20 23:26 mysql-bin.000001 -rw-r----- 1 mysql mysql 32 Nov 20 23:26 mysql-bin.index
慢日志(slow_log)
作用
記錄MySQL工作中,運(yùn)行較慢的語(yǔ)句。用來(lái)定位SQL語(yǔ)句性能問(wèn)題。
建議都在my.cnf 中配置,因?yàn)橹貑⒉拍苡谰蒙А?/p>
開(kāi)關(guān): slow_query_log=1 slow_query_log_file= 維度: set global slow_query_log=1 set global long_query_time=0.5 set global log_queries_not_using_indexes=1 set global log_throttle_queries_not_using_indexes=1000;
general_log 業(yè)務(wù)sql
普通日志,會(huì)記錄所有數(shù)據(jù)庫(kù)發(fā)生的事件及語(yǔ)句
[root@localhost ~]# # 普通日志 general_log [root@localhost ~]# # 文本格式記錄MySQL運(yùn)行期間,所有的所作語(yǔ)句, 可以做問(wèn)題診斷和調(diào)試 [root@localhost ~]# # 參數(shù): general_log , general_log_file [root@localhost ~]# vim /etc/my.cnf [root@localhost ~]# cat /etc/my.cnf [mysql] socket=/tmp/mysql.sock [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/3306/data server_id=51 port=3306 socket=/tmp/mysql.sock log_error=/data/3306/log/mysql-err.log log_bin=/data/3306/log/mysql-bin slow_query_log=1 slow_query_log_file=/data/3306/log/slow.log long_query_time=0.5 log_queries_not_using_indexes=1 log_throttle_queries_not_using_indexes=1000 general_log=on general_log_file=/data/3306/log/genlog
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL優(yōu)化之如何了解SQL的執(zhí)行頻率
MySQL 客戶端連接成功后,通過(guò) show [session|global]status 命令 可以提供服務(wù)器狀態(tài)信息,也可以在操作系統(tǒng)上使用 mysqladmin extended-status 命令獲得這些消息2014-05-05
Ubuntu Server下MySql數(shù)據(jù)庫(kù)備份腳本代碼
為了mysql數(shù)據(jù)庫(kù)的安全,我們需要定時(shí)備份mysql數(shù)據(jù)庫(kù),這里提供下腳本代碼,需要的朋友可以參考下2013-06-06
MySQL數(shù)據(jù)庫(kù)索引原理及優(yōu)化策略
MySQL數(shù)據(jù)庫(kù)索引是一種數(shù)據(jù)結(jié)構(gòu),用于提高數(shù)據(jù)查詢的效率,加快數(shù)據(jù)檢索的速度。索引基于樹(shù)結(jié)構(gòu)實(shí)現(xiàn),可以通過(guò)B+樹(shù)等算法來(lái)優(yōu)化索引效率。MySQL中常見(jiàn)的索引類型包括主鍵索引、唯一索引、普通索引、全文索引等2023-04-04
mysql 隊(duì)列 實(shí)現(xiàn)并發(fā)讀
隊(duì)列是常用的數(shù)據(jù)結(jié)構(gòu),基本特點(diǎn)就是先入先出,在事務(wù)處理等方面都要用到它,有的時(shí)候是帶有優(yōu)先級(jí)的隊(duì)列。當(dāng)隊(duì)列存在并發(fā)訪問(wèn)的時(shí)候,比如多線程情況下,就需要鎖機(jī)制來(lái)保證隊(duì)列中的同一個(gè)元素不被多次獲取2012-04-04
mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)詳解
這篇文章主要給大家介紹了關(guān)于mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)的相關(guān)資料,在MySQL 數(shù)據(jù)庫(kù)中進(jìn)行復(fù)雜的查詢語(yǔ)句,例如對(duì)多個(gè)字段進(jìn)行篩選和排序,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06

