实现Python连接Mysqln以及应用

发布时间:2019-09-17 07:43:55编辑:auto阅读(1578)

                                                               实现Python连接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调用,做成图,就可以实现监控了



关键字