实现 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 呼叫,做成图,就可以实现监控了。