實現(xiàn)Python連接MySQLn以及應用
成都創(chuàng)新互聯(lián)專注于通城網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供通城營銷型網(wǎng)站建設,通城網(wǎng)站制作、通城網(wǎng)頁設計、通城網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造通城網(wǎng)絡公司原創(chuàng)品牌,更為您提供通城網(wǎng)站排名全網(wǎng)營銷落地服務。
python 連接mysql數(shù)據(jù)庫,是python應用的一個非常重要的模塊,Pytho連接Mysqln需要連接導入python的mysql模塊,通過python連接數(shù)據(jù)庫,我們可以實現(xiàn)對本地的資源狀態(tài)實現(xiàn)實時監(jiān)控。
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") ###連接本地的數(shù)據(jù)庫mem,指定數(shù)據(jù)庫的名稱,主機地址,用戶名和密碼 con.autocommit(True) ###設置為自動提交模式,表示把每一個查詢操作,作為1個獨立的事務處理,馬上執(zhí)行 cur = con.cursor() ###創(chuàng)建1個游標對象 for i in range(10): ###這里做個for循環(huán)寫入數(shù)據(jù) sql = 'insert into mem values(%d, "user%d")'%(i,i) ###定義sql語句 cur.execute(sql) ##執(zhí)行sql語句
注意:
##數(shù)據(jù)庫和數(shù)據(jù)表必須是你先創(chuàng)建的,而且mysql一定要設置密碼才行。
3、執(zhí)行結果
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 |
當我們執(zhí)行腳本后,我們發(fā)現(xiàn)數(shù)據(jù)已經(jīng)寫得數(shù)據(jù)庫里面了
4、現(xiàn)在我們可能會有疑問,這樣寫進去又有什么用,那好,我們接著寫個腳本,關于mysql的應用的?,F(xiàn)在我們對服務器的內存使用情況,寫入到mysql上,寫得mysql上就可以通過flask調用,實現(xiàn)對本地資源實現(xiàn)監(jiān)控。
我們查看一下我們內存文件
[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
###查看數(shù)據(jù)庫
mysql> select * from memory; +--------+------------+ | memory | time | +--------+------------+ | 577012 | 1511869204 | | 577004 | 1511869205 | | 576872 | 1511869206 | +--------+------------+
8、我們會發(fā)現(xiàn)它會實時獲取內存的使用情況,這樣我們的目的也達到了,只要有數(shù)據(jù)輸入到mysql中,接下來只要通過flask調用,做成圖,就可以實現(xiàn)監(jiān)控了。