如何監聽資料庫的新增mysql,資料庫創建監聽

本文目錄一覽:

如何監控mysql表記錄變化

本期我們用 MySQL 提供的 DBUG 工具來研究 MySQL 的 SQL 處理流程。

起手先造個實例

這裡得稍微改一下實例的啟動文件 start,將 CUSTOM_MYSQLD 改為 mysqld-debug:

重啟一下實例,加上 debug 參數:

我們來做一兩個實驗,說明 DBUG 包的作用:

先設置一個簡單的調試規則,我們設置了兩個調試選項:

d:開啟各個調試點的輸出

O,/tmp/mysqld.trace:將調試結果輸出到指定文件

請點擊輸入圖片描述

然後我們創建了一張表,來看一下調試的輸出結果:

請點擊輸入圖片描述

可以看到 create table 的過程中,MySQL 的一些細節操作,比如分配內存 alloc_root 等

這樣看還不夠直觀,我們增加一些信息:

請點擊輸入圖片描述

來看看效果:

請點擊輸入圖片描述

可以看到輸出變成了調用樹的形式,現在就可以分辨出 alloc_root 分配的內存,是為了解析 SQL 時用的(mysql_parse)

我們再增加一些有用的信息:

請點擊輸入圖片描述

可以看到結果中增加了文件名和行號:

請點擊輸入圖片描述

現在我們可以在輸出中找一下統計表相關的信息:

請點擊輸入圖片描述

可以看到 MySQL 在這裡非常機智,直接執行了一個內置的存儲過程來更新統計表。

沿著 que_eval_sql,可以找到其他類似的統計表,比如下面這些:

請點擊輸入圖片描述

請點擊輸入圖片描述

本次實驗中,我們藉助了 MySQL 的 DBUG 包,來讓 MySQL 將處理過程暴露出來。MySQL 中類似的技術還有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

這些技術將 MySQL 的不同方向的信息暴露出來,方便大家理解其中機制。

監聽mysql資料庫改變

如果是當前用戶通過IE增加了一條記錄到資料庫中,增加成功了,你就把對應數據查詢出來就可以了啊,如果是其他用戶增加,則只能刷新哦

用軟體增加了一條數據到mysql,是否用PHP可以監控到增加了數據呢

可以用腳本來實現;

思路:

1.創建一個ceshi.txt文件,內容是資料庫內數據數量;

2.腳本內容查詢資料庫數量,讀取並更新ceshi.txt內的數量,判斷查詢出的數量大於ceshi.txt內的數量就是新增,小於就是刪除,並執行php程序;

如何使cacti監控mysql伺服器

cacti監控mysql資料庫的方法

環境:

Cactiez或者cacti主機:192.168.12.5

被監控mysql資料庫主機:192.168.5.231

1. 安裝監控插件

cd /opt

tar -xzvf mysql-cacti-templates-1.1.2.tar.gz

cp /opt/mysql-cacti-templates-1.1.2/ss_get_mysql_stats.php /var/www/html/scripts/

其實裡面我們要監控mysql用到的是:acti_host_template_x_db_server_ht_0.8.6i.xml和mysql_definitions.pl

其他則是監控Apache和Nginx的,接下來我們會介紹到,這裡不再詳細的講了。

chown -R apache.apache /var/www/html/scripts

chmod -R 755 /var/www/html/scripts

使用 http 訪問 cacti主機 導入

/opt/mysql-cacti-templates-1.1.2/cacti_host_template_x_db_server_ht_0.8.6i.xml

默認CactiEZ 和Cacti別是 admin admin

控制台 – 導入導出 – 模板導入 – 瀏覽

選中 cacti_host_template_x_db_server_ht_0.8.6i.xml

保存

2. 配置cacti的mysql插件

修改 ss_get_mysql_stats.php

vi /var/www/html/scripts/ss_get_mysql_stats.php

$mysql_user = ‘cacti’;

$mysql_pass = ‘cacti’;

$cache_dir = “/tmp/cacti/cache/”;

這個賬戶和密碼是 被監控端主機 給 Cacti主機 授權的 賬戶和密碼

Cacti需要這個賬戶和密碼去連接 被監控機 查詢狀態

mkdir -p /tmp/cacti/cache

chown -R apache.apache /tmp/cacti

chmod -R 755 /tmp/cacti

設置 cacti 緩存目錄在 /tmp/cacti/cache/ 並給予許可權

3. 配置被監控端(192.168.5.231)的mysql 給 cacti 主機授權

mysql -uroot -p

grant process,super on *.* to ‘cacti’@’192.168.12.5’ identified by ‘cacti’;

exit

grant process,super on *.* to ‘賬戶’@’Cacti主機IP地址’ identified by ‘密碼’;此命令意義

只允許IP為 192.168.12.5 的主機 以賬戶 cacti 密碼 cacti 去訪問 本機數據

4. 在Cacti主機上(192.168.12.5) 監控Mysql

4.1 為主機添加mysql模塊

控制台 – 管理 – 設備 – 選中之前創建好的主機

然後移到最下面的 添加圖形模版 選中 Mysql相關模塊 然後保存

4.2 為mysql模塊創建圖形

控制台 – 創建 – 創建圖形 – 選中該主機 – 選中mysql模塊 – 創建

4.3 插件mysql性能數據

監視器 – 選中該主機 – 查閱對應的mysql

完畢

—–一些資料庫操作語句

mysqld_safe –user=mysql

mysql -uroot -p

mysql -uroot -proot

grant ALL PRIVILEGES ON *.* to 『root』@”%” identified by “root” WITH GRANT OPTION;

exit

grant select,insert,update,delete on cacti.* to 『cacti』@」*」identified by “cacti”;

exit

grant process,super on *.* to ‘cacti’@’%’ identified by ‘cacti’;

grant all privileges on cacti.* to 『cacti』@”%” identified by “cacti”;

客戶端開啟Cacti訪問本機mysql的許可權

grant process,super on *.* to ‘cacti’@’192.168.12.5’ identified by ‘cacti’;

grant process,super on *.* to ‘cacti’@’192.168.5.231’ identified by ‘cacti’;

= = = = =

mysql -ucacti -pcacti -h 192.168.5.231

如何實現實時監控mysql資料庫主從同步的狀態

1、增加一個用戶同步使用的帳號:

GRANT FILE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;

GRANTREPLICATION SLAVE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;

賦予10.10.8.112也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION SLAVE的權

限才可以。

2、增加一個資料庫作為同步資料庫:

create databbse test;

3、創建一個表結構:

create table mytest (username varchar(20),password varchar(20));

4、修改配置文件:

修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:

server-id = 1 #Server標識

log-bin

binlog-do-db=test #指定需要日誌的資料庫

5、重起資料庫服務:

service mysqld restart

查看server-id:

show variable like 『server_id』;

實例:

mysql show variables like ‘server_id’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| server_id | 1 |

+—————+——-+

1 row in set (0.00 sec)

6、用show master status/G命令看日誌情況。

正常為:

mysql show master status/G

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308702.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-03 14:49
下一篇 2025-01-03 14:49

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論