本文目錄一覽:
- 1、如何監控mysql表記錄變化
- 2、監聽mysql資料庫改變
- 3、用軟體增加了一條數據到mysql,是否用PHP可以監控到增加了數據呢
- 4、如何使cacti監控mysql伺服器
- 5、如何實現實時監控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