`
alfred_long
  • 浏览: 560172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python Mysql数据库操作,sql文件操作

阅读更多

近来在看python,于是,将某个shell实现过的功能用python实现下

1 python 操作mysql 需要有 MySQLdb 这个库的支持,一般需要单独安装

2 MySQLdb库只能执行sql语句,对于sql文件执行,比较麻烦,所以用了subprocess库的方法Popen

import MySQLdb
from subprocess import Popen,PIPE
sqlta = "/usr/local/webserver/scripts/ta.sql"
sqlclita = "/usr/local/webserver/scripts/clita.sql"
Platform = raw_input('Please Enter Platform:')
Server = raw_input('Please Enter Server:')
LogTa = "LogTa_"+Platform+"_"+Server
LogCliTa = "LogCliTa_"+Platform+"_"+Server
host = "192.168.0.1"
usr = "admin"
passwd = "admin8SQBL"
port = 3303
try:
        conn = MySQLdb.connect(host=host,user=usr,passwd=passwd,port=port)
        cur = conn.cursor()
        cur.execute('create database IF NOT EXISTS '+LogTa)
        cur.execute('create database IF NOT EXISTS '+LogCliTa)
        cur.close()
        conn.close()
except MySQLdb.Error,e:
        print "Mysql Error %d: %s" % (e.args[0], e.args[1])
process = Popen('/usr/local/webserver/mysql/bin/mysql -h%s -P%s -u%s -p%s %s'  %(host, port, usr, passwd, LogTa), stdout=PIPE, stdin=PIPE, shell=True)
output = process.communicate('source '+sqlta)

process = Popen('/usr/local/webserver/mysql/bin/mysql -h%s -P%s -u%s -p%s %s'  %(host, port, usr, passwd, LogCliTa), stdout=PIPE, stdin=PIPE, shell=True)
output = process.communicate('source '+sqlclita)

   相当于用MySQLdb库创建了数据库,然后用Popen,进行sql文件的执行操作。Popen()函数相当于用shell来执行..

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics