实现mysql数据导出日志
1. 流程图
flowchart TD
A[连接数据库] --> B[执行sql语句]
B --> C[导出结果]
C --> D[写入日志文件]
2. 实施步骤
步骤 | 代码 | 说明 |
---|---|---|
1 | import mysql.connector |
导入mysql.connector模块,用于连接MySQL数据库 |
2 | from datetime import datetime |
导入datetime模块,用于获取当前时间 |
3 | import csv |
导入csv模块,用于将数据写入CSV文件 |
4 | def connect_to_database(): |
定义连接数据库的函数,返回一个数据库连接对象 |
5 | conn = mysql.connector.connect( |
建立数据库连接,需要提供数据库地址、用户名、密码和数据库名称 |
host="localhost", |
数据库地址 | |
user="root", |
用户名 | |
password="password", |
密码 | |
database="mydb" |
数据库名称 | |
) |
||
6 | return conn |
返回数据库连接对象 |
7 | def execute_sql(conn, sql): |
定义执行sql语句的函数,接受一个数据库连接对象和sql语句作为参数 |
8 | cursor = conn.cursor() |
创建游标对象 |
9 | cursor.execute(sql) |
执行sql语句 |
10 | result = cursor.fetchall() |
获取执行结果 |
11 | cursor.close() |
关闭游标对象 |
12 | return result |
返回执行结果 |
13 | def export_data(conn, sql, filename): |
定义导出数据的函数,接受一个数据库连接对象、sql语句和文件名作为参数 |
14 | result = execute_sql(conn, sql) |
执行sql语句并获取执行结果 |
15 | with open(filename, mode='w', newline='') as file: |
使用with语句打开文件,mode为写入模式,newline参数为空 |
16 | writer = csv.writer(file) |
创建csv写入对象 |
17 | for row in result: |
遍历执行结果 |
18 | writer.writerow(row) |
将每一行数据写入文件 |
19 | write_log("Data exported successfully") |
调用写入日志的函数,并传入日志内容 |
20 | def write_log(log): |
定义写入日志的函数,接受日志内容作为参数 |
21 | timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
获取当前时间并格式化为字符串 |
22 | with open("log.txt", mode='a') as file: |
使用with语句打开日志文件,mode为追加模式 |
23 | file.write(f"{timestamp} - {log}\n") |
将时间和日志内容写入文件 |
24 | if __name__ == "__main__": |
程序入口,判断是否为直接运行的脚本 |
25 | conn = connect_to_database() |
连接数据库并获取连接对象 |
26 | sql = "SELECT * FROM mytable" |
需要执行的sql语句 |
27 | export_data(conn, sql, "data.csv") |
导出数据到CSV文件 |
28 | conn.close() |
关闭数据库连接 |
希望以上步骤和代码能够帮助你实现mysql数据导出日志功能。在代码中已经添加了注释,用于解释每一条代码