實現Pytho連接Mysqln以及應用
阿新 • • 發佈:2017-11-28
mysql python memory; 實現Pytho連接Mysqln以及應用
python 連接mysql數據庫,是python應用的一個非常重要的模塊,Pytho連接Mysqln需要連接導入python的mysql模塊,通過python連接數據庫,我們可以實現對本地的資源狀態實現實時監控。
1、首先我們需要先安裝MySQL模塊
[root@centos mem]# yum install MySQL-python -y
2、接下來我們就可以直接腳本了
[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,指定數據庫的名稱,主機地址,用戶名和密碼 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、執行結果
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調用,實現對本地資源實現監控。
我們查看一下我們內存文件
[root@centos pytonjiaoben]# cat /proc/meminfo MemTotal: 1528700 kB MemFree: 224072 kB Buffers: 130432 kB Cached: 604432 kB SwapCached: 8440 kB
6、編寫腳本,獲取內存的使用量
[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、查看結果
[root@centos pytonjiaoben]# python mem/mysql.py 562 563 563 563
###查看數據庫
mysql> select * from memory; +--------+------------+ | memory | time | +--------+------------+ | 577012 | 1511869204 | | 577004 | 1511869205 | | 576872 | 1511869206 | +--------+------------+
8、我們會發現它會實時獲取內存的使用情況,這樣我們的目的也達到了,只要有數據輸入到mysql中,接下來只要通過flask調用,做成圖,就可以實現監控了。
mysql;python;memory;
實現Pytho連接Mysqln以及應用