数据库备份
备份数据库通常使用 mysqldump
命令。可以通过Python脚本执行如下命令:
import os
import pymysql
import time
# 定义数据库连接信息
sql_host = 'localhost'
sql_user = 'your_username' # 数据库登录用户
sql_pwd = 'your_password' # 数据库登录密码
databases = ['db1', 'db2'] # 要备份的数据库列表
# 存放备份文件的地址
root_path = './backups/'
if not os.path.exists(root_path):
os.mkdir(root_path)
# 创建备份
for database_name in databases:
backup_file = os.path.join(root_path, database_name + '_' + time.strftime('%Y%m%d') + '.sql')
sql_command = "mysqldump -u%s -p%s %s > %s --default-character-set=utf8" % (
sql_user, sql_pwd, database_name, backup_file)
if os.system(sql_command) == 0:
print(f"{database_name} backup successfully! Backup file path: {backup_file}")
else:
print(f"{database_name} backup failed.")
数据库恢复
恢复数据库可以通过 mysql
命令行工具来实现。以下是一个Python脚本示例,用于从备份文件恢复数据库:
import os
import pymysql
import time
# 定义数据库连接信息
sql_host = 'localhost'
sql_user = 'your_username' # 数据库登录用户
sql_pwd = 'your_password' # 数据库登录密码
# 备份文件地址
sql_path = './backups/db1_20230101.sql' # 存放sql文件的地址
# 恢复数据
if os.path.exists(sql_path):
database_name = 'db1' # 要恢复到的数据库名
sql_command = "mysql -u%s -p%s -D%s < %s" % (
sql_user, sql_pwd, database_name, sql_path)
if os.system(sql_command) == 0:
print(f"{database_name} restore successfully.")
else:
print(f"{database_name} restore failed.")
else:
print('Backup file does not exist.')
请注意,上述脚本中的 'your_username'
, 'your_password'
, 和 'db1'
需要替换为实际的数据库登录信息和数据库名。备份和恢复操作需要相应的权限,确保数据库用户具有执行 mysqldump
和 mysql
命令的权限。