如何获取所有数据库的列表并在python中运行查询

时间:2015-03-16 04:12:32

标签: python mysql boto

我想打印1个RDS的所有数据库并对其运行选择查询。 在这里,我能够打印所有数据库,但希望在每个数据库上运行SELECT查询。 请为它建议解决方案?

import boto.rds
import sys
import os
import MySQLdb

conn = boto.rds.connect_to_region("ap-southeast-1", aws_access_key_id='xxxx',aws_secret_access_key='xxx')
instances = conn.get_all_dbinstances()
db = instances[0] 
print "%s %s" % (instances, db.endpoint)

我用它作为代码,但它不起作用

host_name=db.endpoint
print host_name 

db = MySQLdb.connect(host=host_name,user="dxx",passwd="xxx",db="xxx")
cursor = db.cursor()
cursor.execute("SHOW DATABASES")
db.commit()
numrows = int(cursor.rowcount)
for x in range(0,numrows):
    row = cursor.fetchone()
     if row[0].find('em') != -1:
        print row[0]
        sql="select * from row[0].T_USER where LoginId='%s'" % 'hello'
        cursor.execute(sql) 
        results = cursor.fetchone()
        print results[0] 

1 个答案:

答案 0 :(得分:2)

http://boto.readthedocs.org/en/latest/rds_tut.html

请参阅此页面。它很有用。

db.endpoint看起来像这样

(u'db-master-1.aaaaaaaaaa.us-west-2.rds.amazonaws.com', 3306)

它是python元组并使用像

host_name=db.endpoint[0]

并打印所有数据库使用简单查询,如

show databases;