pymysql.connect()参数说明:(连接数据库时需要添加的参数)
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码 connect()对象支持的方法:
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接 cursor对象支持的方法:
execute(op) 执行一个数据库的查询命令
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象
# 连接数据库连接
def database_connection(Host,User, Passwd): #BACKUP_PATH = '/mnt/dbbackup/mysql/' #备份路径
#DATETIME = time.strftime('%Y%m%d-%H%M%S') # 当前时间
#TODAYBACKUPdir = BACKUP_PATH + '/' + DATETIME
"""Create the backup file directory """
# 在/home/work/目录下用当天时间的格式创建目录
# 判断如果没有当天时间目录
#if not os.path.exists(TODAYBACKUPdir): os.mkdir(TODAYBACKUPdir) # 创建
#print ('Successfully created directory', TODAYBACKUPdir) conn = pymysql.connect(host = Host,
user = User,
passwd = Passwd,
port = 3306,
charset = "utf8") # 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor() sql = 'show databases;' #显示所有的数据库
cursor.execute(sql) # 使用 execute() 方法执行 SQL 查询
    # 使用 fetchall()方法获取所有的信息并过滤数据库自带的数据库,同时将需要备份的数据库追加到新列表data_list[]保存
databases = []
for i in cursor.fetchall():
if i[0] == 'mysql':
continue
elif i[0] == 'information_schema':
continue
elif i[0] == 'performance_schema':
continue
elif i[0] == 'sys':
continue
databases.append(i[0])
print(databases)
for database in databases:
print(database)
def database_connection(.............)
注意点:因为是使用python2版本,所以会出现输出字符转换问题,所以取值用i[0]才能取到我想要的数据库值。
05-11 22:05