我想打印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]
答案 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;