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]才能取到我想要的數據庫值。