1. 程式人生 > >實現Pytho連接Mysqln以及應用

實現Pytho連接Mysqln以及應用

mysql python memory;

實現Pytho連接Mysqln以及應用

python 連接mysql數據庫,是python應用的一個非常重要的模塊,Pytho連接Mysqln需要連接導入pythonmysql模塊,通過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以及應用