如何檢視mysql資料庫操作記錄日誌

時間 2021-07-20 10:30:58

1樓:愛可生雲資料庫

這是乙個慢查詢日誌的展示工具,能夠幫助 dba 或者開發人員分析資料庫的效能問題,給出全面的資料擺脫直接檢視 slow-log。qan(query analytics)

pmm 目前有 2 個版本,但是對於 qan 來說其大致由三部分組成:

qan-agent(client):負責採集 slow-log 的資料並上報到服務端

qan-api(server):負責儲存採集的資料,並對外提供查詢介面

1. 資料流轉

2. pmm1 架構圖

3. pmm2 架構圖

2樓:匿名使用者

1、首先確認你日誌是否啟用了mysql>show variables like 'log_bin'。

2、如果啟用了,即on,那日誌檔案就在mysql的安裝目錄的data目錄下。

3、怎樣知道當前的日誌mysql> show master status。

4、看二進位制日誌檔案用mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail,windows 下用類似的。

mysql的日誌操作:

1、首先,登陸mysql後,執行sql語句:show variables like 'log_bin'。

2、#錯誤日誌log-errol開啟方式:在my.ini的[mysqld]選項下:新增**:log-error=e:\log-error.txt。

記錄內容:主要是記錄啟動、執行或停止mysqld時出現的致命性問題,都是系統級的錯誤記錄。

3、#查詢日誌:log,開啟方式:在my.ini的[mysqld]選項下:新增**:log=e:/mysql_log.txt。

4、#二進位制日誌:log-bin,開啟方式:在my.

ini的[mysqld]選項下:新增**:log-bin=e:

/mysql_log_bin,記錄內容:主要是記錄所有的更改資料的語句,可使用mysqlbinlog命令恢復資料。

3樓:匿名使用者

一.錯誤日誌

錯誤日誌在mysql資料庫中很重要,它記錄著mysqld啟動和停止,以及伺服器在執行過程中發生的任何錯誤的相關資訊。

1.配置資訊

--log-error=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],預設hostname.err做為檔名,預設存放在datadir目錄中。

也可以將log-error配置到my.cnf檔案中,這樣就省去了每次在啟動mysqld時都手工指定--log-error.例如:

[mysql@test2]$ vi /etc/my.cnf

# the mysql server

[mysqld]

....

log-error = /var/lib/mysql/test2_mysqld.err

.....

2.錯誤資訊樣板

080313 05:21:55 mysqld started

080313 5:21:55 innodb: started; log sequence number 0 43655

080313 5:21:55 [note] /usr/local/mysql/bin/mysqld: ready for connections.

version: '5.0.

26-standard-log' socket: '/var/lib/mysql/mysql.sock' port:

3306 mysql community edition - standard (gpl)

080313 5:24:13 [note] /usr/local/mysql/bin/mysqld: normal shutdown

080313 5:24:13 innodb: starting shutdown...

080313 5:24:16 innodb: shutdown completed; log sequence number 0 43655

080313 5:24:16 [note] /usr/local/mysql/bin/mysqld: shutdown complete

080313 05:24:16 mysqld ended

080313 05:24:47 mysqld started

080313 5:24:47 innodb: started; log sequence number 0 43655

080313 5:24:47 [note] /usr/local/mysql/bin/mysqld: ready for connections.

version: '5.0.

26-standard-log' socket: '/var/lib/mysql/mysql.sock' port:

3306 mysql community edition - standard (gpl)

080313 5:33:49 [note] /usr/local/mysql/bin/mysqld: normal shutdown

三.查詢日誌

查詢日誌記錄了clinet的所有的語句。

note:由於log日誌記錄了資料庫所有操作,對於訪問頻繁的系統,此種日誌會造成效能影響,建議關閉。

1.配置資訊

--log=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],預設為主機名(hostname)做為檔名,預設存放在datadir目錄中。

也可以將log配置到my.cnf檔案中,這樣就省去了每次在啟動mysqld時都手工指定--log.例如:

# the mysql server

[mysqld]

......

#query-log

log = /var/lib/mysql/query_log.log

......

2.讀取查詢日誌

查詢日誌是純文字格可,可以使用os文字讀取工具直接開啟檢視。例如:

[mysql@test2]$ tail -n 15 query_log.log

080313 7:58:28 17 query show tables

080313 8:07:45 17 quit

080313 10:01:48 18 connect root@localhost on

080313 10:02:38 18 query select database()

18 init db test

080313 10:02:42 18 query show tables

080313 10:03:07 18 query select * from pet

080313 10:06:26 18 query insert into pet values('hunter','yxyup','cat','f','1996-04-29',null)

080313 10:06:39 18 query select * from pet

080313 10:07:13 18 query update pet set ***='m' where name='hunter'

080313 10:07:38 18 query delete from pet where name='hunter'

080313 10:13:48 18 query desc test8

080313 10:14:13 18 query create table t1(id int,name char(10))

080313 10:14:41 18 query alter table t1 add *** char(2)

[mysql@test2]$

四.慢查詢日誌

慢查詢日誌是記錄了執行時間超過引數long_query_time(單位是秒)所設定值的sql語句日誌。

note:慢查詢日誌對於我們發現效能有問題的sql有很幫助,建議使用並經常分析

1.配置資訊

--log-slow-queries=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],預設為hostname-slow.log做為檔名,預設存放在datadir目錄中。

也可以將log-slow-queries配置到my.cnf檔案中,這樣就省去了每次在啟動mysqld時都手工指定--log-slow-queries.例如:

# the mysql server

[mysqld]

......

#slow-query-log

log-slow-queries = /var/lib/mysql/slow_query_log.log

......

2.讀取慢查詢日誌

[mysql@test2]$ cat slow_query_log.log

/usr/local/mysql/bin/mysqld, version: 5.0.26-standard-log. started with:

tcp port: 3306 unix socket: /var/lib/mysql/mysql.sock

time id command argument

# time: 080313 5:41:46

# user@host: root[root] @ localhost

# query_time: 108 lock_time: 0 rows_sent: 0 rows_examined: 8738

use test;

select count(1) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name;

# time: 080313 5:52:04

# user@host: root[root] @ localhost

# query_time: 583 lock_time: 0 rows_sent: 0 rows_examined: 508521177

select count(1) from t1 a, t1 b where a.id=b.id;

/usr/local/mysql/bin/mysqld, version: 5.0.26-standard-log. started with:

tcp port: 3306 unix socket: /var/lib/mysql/mysql.sock

time id command argument

# time: 080313 10:39:59

# user@host: root[root] @ localhost

# query_time: 11 lock_time: 0 rows_sent: 4537467 rows_examined: 4537467

use test;

select id from tail;

如果慢查詢日誌記錄很多可以使用mysqldumpslow進行分類彙總

[mysql@test2]$ mysqldumpslow slow_query_log.log

reading mysql slow query log from slow_query_log.log

count: 1 time=583.00s (583s) lock=0.00s (0s) rows=0.0 (0), root[root]@localhost

select count(n) from t1 a, t1 b where a.id=b.id

count: 1 time=108.00s (108s) lock=0.00s (0s) rows=0.0 (0), root[root]@localhost

select count(n) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name

count: 1 time=11.00s (11s) lock=0.

00s (0s) rows=4537467.0 (4537467), root[root]@localhost

select id from tail;

mysql有以下幾種日誌:

錯誤日誌: -log-err

查詢日誌: -log

慢查詢日誌: -log-slow-queries

更新日誌: -log-update

二進位制日誌: -log-bin

在mysql的安裝目錄下,開啟my.ini,在後面加上上面的引數,儲存後重啟mysql服務就行了。

例如:#enter a name for the binary log. otherwise a default name will be used.

#log-bin=

#enter a name for the query log file. otherwise a default name will be used.

#log=

#enter a name for the error log file. otherwise a default name will be used.

log-error=

#enter a name for the update log file. otherwise a default name will be used.

#log-update=

檢視日至:

1. 首先確認你日誌是否啟用了

mysql>show variables like 'log_bin';

如果啟用了,即on

那日誌檔案就在mysql的安裝目錄的data目錄下

cat/tail 日誌檔名

2. 怎樣知道當前的日誌

mysql> show master status;

3. 檢視從某一段時間到某一段時間的日誌

mysqlbinlog --start-datetime='2008-01-19 00:00:00'

--stop-datetime='2008-01-30 00:00:00' /var/log/mysql/mysql-bin.000006

> mysqllog1.log

MYSQL資料庫怎麼用?如何匯入MySQL資料庫?

建立下乙個sqlyog,這個很容易入門,有中文簡體版的,樓上固然好,但是對於初學者不是太合適。如何匯入mysql資料庫?3 如果sql檔案的內容中有建立資料庫的語句,或者想將表存放在已有的資料庫,在這裡就不用建立資料庫。6 開始匯入sql檔案,輸入 source sql檔案的路徑 注意檔案路徑要是複...

mysql資料庫和oracle資料庫的區別

1 體積不同。oracle它體積比較龐大,一般是用來開發大型應用 例如分布式 的。而mysql的體積相對來說比較小,較之oracle更容易安裝 維護以及管理,操作也簡單,最重要的是它是三個中唯一乙個開源資料庫,但目前也屬於oracle公司的產品了。2 容量不同。oracle容量無限,根據配置決定 而...

mysql資料庫怎樣建立表,MYsql資料庫怎樣建立表? 20

歐覓潘安然 比如要建立學生表表名為student,學生表有欄位學號 no 年齡 age create table student no int primary key 主鍵 age int 執行下就建立好了 隨便舉的例子,明白吧?謝謝採納! create database cookbook 建立一個...