- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
- MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- 安装MySQL数据库:
yum install mariadb -y
yum install MySQL-python.x86_64 -y #其中封装了MySQL C驱动的Python驱动
mysql_secure_installation #设置root用户登陆密码,删除远程访问root账户,删除匿名用户登陆,删除test数据库
数据库的使用:
1>创建连接对象
conn=mysql.connect(user="root",passwd="redhat",host="127.0.0.1",port=3306,db="数据库名",charset="编码模式")
- 连接对象方法:
cursor() #返回连接的游标对象
commit() #立即提交挂起的事物
rollback() #回滚挂起的事物,取消当前操作
close() #关闭连接,关闭后,连接对象和它的游标均不可用
select_db(“数据库名“) #连接数据库
2>创建游标对象
cur=conn.cursor()
- 游标对象方法:
execute(oper[,序列]) #执行一个SQL操作,可能带有参数
executemany(oper,序列) #对序列中的每个参数执行SQL操作
fetchone() #把查询结果集中的下一行保存为序列,或者None
fetchall() #
fetchmany() #
scroll(数字,mode) #移动指针到某一行
close() #关闭游标对象
- 游标对象的属性
description #接果列描述的序列,只读
rowcount #结果中的行数,只读
rownumber #当前行号
arraysize #fetchmany中返回的行数,默认为1
import MySQLdb as mysql
conn=mysql.connect(user="root",passwd="redhat",host="127.0.0.1",port=3306,db="myTest")
cur = conn.cursor()
cur.execute("select * from userinfo")
print cur.fetchone()
print cur.fetchmany(3)
print cur.description
print cur.rowcount
print cur.rownumber
print cur.arraysize
- 可通过设置cur.arraysize来改变fetchmany中的行数
练习:
disk_used.py
import os
def get_disk_used():
f=os.popen("df -h | head -2 | tail -1 | awk '{print $5}'")
return f.read()
if __name__=="__main__":
pass
user="root"
passwd="redhat"
host="127.0.0.1"
port=3306
if __name__=="__main__":
pass
import MySQLdb as mysql
import disk_used,time
import conf
try:
conn=mysql.connect(user=conf.user,passwd=conf.passwd,host=conf.host,port=conf.port)
cur = conn.cursor()
cur.execute("create database HostInfo")
cur.execute("create table info (disk_used varchar(20),date varchar(20))")
except Exception,error:
print error
conn.select_db("HostInfo")
sqli="insert into info values(%s,%s)"
while 1:
used=disk_used.get_disk_used().strip()
mytime=time.time()
print used, mytime
cur.execute(sqli,(used,mytime))
conn.commit()
time.sleep(1)
cur.close()
conn.close()