专栏首页python3实现Python连接Mysqln以及应用

实现Python连接Mysqln以及应用

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql轻快入门(3)

    有一种情况,你忘记数据库密码啦,你怎么办,砸电脑吗?no..... 请见下: select host,user,password from mysql.user...

    用户2398817
  • Python 连接mysql数据库进行操

    1.MySQLdb 模块是用于Python链接Mysql数据库的接口,默认是没有安装的

    用户2398817
  • 3Mysql 的常用操作

    root@OBird ~]# mysql -uroot -pzaq12wsx   #入库

    用户2398817
  • 『TensorFlow2.0正式版』TF2.0+Keras速成教程·零:开篇简介与环境准备

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    小宋是呢
  • Ubuntu 20.04 强悍来袭,看看都有哪些新特性?

    Ubuntu 19.10 生命周期将在今年 7 月结束,之后一段时间内最大的版本则是 Ubuntu 20.04 LTS,其重大更新和改进将在 2030 年前终止...

    逆锋起笔
  • Sqlmap自动切换代理

    大家经常可能遇到,用sqlmap跑某些注入的时候,因为网络、waf等问题造成被拦截、跑失败等情况。

    Jumbo
  • centos 设置时间和时区 转

    list-timezones 列出系统上支持的时区 set-timezone 设定时区 set-time 设置时间 set-btp 设置同步ntp ...

    双面人
  • 左手用R右手Python系列——数据塑型与长宽转换

    今天这篇是R语言 with Python系列的第三篇,主要跟大家分享数据处理过程中的数据塑型与长宽转换。 其实这个系列算是我对于之前学习的R语言系列的一个总结,...

    数据小磨坊
  • 构建一个高可用及自动发现的 Docker 基础架构

    Docker的发展前景一片大好。但在企业当中,如何选择适合自己的Docker构建方案?下面详细介绍如何使用 Haproxy + etcd + confd 构建一...

    刘天斯
  • Linux上安装NTP SERVER实现时间校正

    配置时间源 vi /etc/ntp.conf server 210.72.145.44 server ntp.api.bz server 2.cento...

    菲宇

扫码关注云+社区

领取腾讯云代金券