问题:怎么用python在不借助mysqidump的情况下备份mysql数据库
ChatGPT:好的,以下是备份MySQL 数据库的 Python 代码示例,不需要使用 mysqidump命令:
import os
import datetime
import pymysql
# 数据库连接信息
DB_HOST = 'localhost'
DB_USER = 'user'
DB_USER_PASSWORD = 'password'
DB_NAME = 'database name'
# 创建备份文件路径
backup_file_path = os.path.join(os.getcwd(),"backup",DB_NAME + "_" +
datetime.datetime.now().strftime("%Y%m%d_%H%M%S", ".sql"))
# 备份 MySQL 数据库
try:
db = pymysql.connect(DB_HOST, DB_USER, DB_USER_PASSWORD, DB_NAME)
cursor = db.cursor()
cursor.execute("SHOW TABLES")
tables = cursor.fetchall()
with open(backup_file_path, "w") as f:
for table in tables:
table_name = table[0]
cursor.execute("SELECT * FROM " + table_name)
results = cursor.fetchall()
table_data =""
for result in results:
table_data += str(result) + "
"
f.write("-- Table structure for table " + table name + "
")
cursor.execute("SHOW CREATE TABLE " + table_name)
table_structure = cursor.fetchone()[1]
f.write(table_structure + ";
")
f.write("-- Data for table " + table_name + "
")
f.write("INSERT INTO " + table_name + "VALUES
")
f.write(table_data + ";
")
print("Database Backup Completed!")
except Exception as e:
print("Error:", e)
finally:
cursor.close()
db.close()
解释:
以上Python 代码会先创建备份文件的路径,然后连接到MySQL数据库,查询出所有数据库的表,然后遍历所有表格、查询和备份表格的结构和数据到备份文件中,最后断开与数据库的连接并输出备份完成信息。
我咋想的:慢慢使用ChatGPT几天时间,WC,这玩意儿有点吓人呀,太牛了,写代码比我强,我已经不敢告诉老板了,搞不了我的码农工作都没了。
页面更新:2024-06-05
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号