實現 Python 連線 Mysqln 以及應用
python 連線 mysql 資料庫,是 python 應用的一個非常重要的模組,Pytho 連線 Mysqln 需要連線匯入 python 的 mysql 模組,透過 python 連線資料庫,我們可以實現對本地的資源狀態實現實時監控。
 
1 、首先我們需要先安裝 MySQL 模組

1

[root@centos mem]# yum  install  MySQL-python   -y

2 、接下來我們就可以直接指令碼了

1
2
3
4
5
6
7
8
9

[root@centos pytonjiaoben]# cat mysql.py 
import MySQLdb  as  mysql                               ###這是匯入 MySQL-python 模組
con = mysql.connect(user=”root”, passwd=”123456″, 
                    db=”mem”, host=”127.0.0.1″)         ###連線本地的資料庫 mem,指定資料庫的名稱,WordPress 主機地址,使用者名稱和密碼
con.autocommit(True)                                    ###設定為自動提交模式,表示把每一個查詢操作,作為 1 個獨立的事務處理,馬上執行
cur = con.cursor()                                      ###建立 1 個遊標物件
for i in range(10):                                     ###這裡做個 for 迴圈寫入資料
   sql = ‘insert into mem values(%d, “user%d”)’%(i,i)   ###定義 sql 語句
   cur.execute(sql)    ##執行 sql 語句

注意:
##資料庫和資料表必須是你先建立的,而且 mysql 一定要設定密碼才行。
3 、執行結果

1
2
3
4
5
6
7
8
9
10
11
12
13
14

mysql> select * from mem;
+——+———+
| id   | name    |
+——+———+
|    0 | user0   |
|    1 | user1   |
|    2 | user2   |
|    3 | user3   |
|    4 | user4   |
|    5 | user5   |
|    6 | user6   |
|    7 | user7   |
|    8 | user8   |
|    9 | user9   |

當我們執行指令碼後,我們發現資料已經寫得資料庫裡面了
4 、現在我們可能會有疑問,這樣寫進去又有什麼用,那好,我們接著寫個指令碼,關於 mysql 的應用的。現在我們對站群伺服器的記憶體使用情況,寫入到 mysql 上,寫得 mysql 上就可以透過 flask 呼叫,實現對本地資源實現監控。
我們檢視一下我們記憶體檔案

1
2
3
4
5
6

[root@centos pytonjiaoben]# cat /proc/meminfo 
MemTotal:        1528700 kB
MemFree:          224072 kB
Buffers:          130432 kB
Cached:           604432 kB
SwapCached:         8440 kB

6 、編寫指令碼,獲取記憶體的使用量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

[root@centos pytonjiaoben]# cat mem/mysql.py 
# -*- coding:utf-8 -*-
import time
import os
import MySQLdb as mysql
db = mysql.connect(user=”root”, passwd=”123456″, db=”memory”, host=”localhost”)
db.autocommit(True)
cur=db.cursor()
def saveMem():            ##獲取 memory 的 total 、 free 、 buff 的量
     a=”awk ‘NR==1{print $2}’ /proc/meminfo”
     file = os.popen(a)
     total=int(file.read())
     b=”awk ‘NR==2{print $2}’ /proc/meminfo”
     file =os.popen(b)
     free =int(file.read())
     c=”awk ‘NR==3{print $2}’ /proc/meminfo”
     file = os.popen(c)
     buffer =int(file.read())
     d=”awk ‘NR==4{print $2}’ /proc/meminfo”
     file =os.popen(d)
     cache =int(file.read())
     mem_used=total-free-buffer-cache
     print mem_used/1024
     #mem = mem_used/1024  
     cur_time = int(time.time())
     sql = ‘insert into memory (memory, time) value (%s,%s)’%(mem_used,cur_time)
     cur.execute(sql)
while True:
saveMem()
time.sleep(1)   # sleep 1 second

7 、檢視結果

1
2
3
4
5

[root@centos pytonjiaoben]# python  mem/mysql.py 
562
563
563
563

###檢視資料庫

1
2
3
4
5
6
7
8

mysql> select * from  memory;
+——–+————+
| memory |   time     |
+——–+————+
| 577012 | 1511869204 |
| 577004 | 1511869205 |
| 576872 | 1511869206 |
+——–+————+

8 、我們會發現它會實時獲取記憶體的使用情況,這樣我們的目的也達到了,只要有資料輸入到 mysql 中,接下來只要透過 flask 呼叫,做成圖,就可以實現監控了。