用代码实现mysql自动备份
时间: 2023-07-27 09:13:09 浏览: 20
以下是一个简单的Python脚本,它可以自动备份MySQL数据库。需要安装`mysql-connector-python`库和`crontab`定时任务工具。
```python
import os
import datetime
import mysql.connector
# MySQL连接信息
host = 'localhost'
user = 'root'
password = 'password'
database = 'mydatabase'
# 备份文件保存路径
backup_path = '/path/to/backup/folder/'
# 获取当前日期时间
now = datetime.datetime.now()
# 备份文件名
backup_filename = now.strftime('%Y-%m-%d_%H-%M-%S') + '.sql'
# 执行备份命令
command = f'mysqldump -h {host} -u {user} -p{password} {database} > {backup_path}{backup_filename}'
os.system(command)
# 创建MySQL连接
cnx = mysql.connector.connect(host=host, user=user, password=password, database=database)
# 创建游标
cursor = cnx.cursor()
# 插入备份记录到数据库
insert_query = f"INSERT INTO backups (filename, created_at) VALUES ('{backup_filename}', '{now}')"
cursor.execute(insert_query)
cnx.commit()
# 关闭游标和连接
cursor.close()
cnx.close()
```
将上述代码保存为`mysql_backup.py`,然后可以通过以下命令执行备份:
```bash
python mysql_backup.py
```
为了实现自动备份,我们可以使用`crontab`定时任务工具。打开终端,输入以下命令:
```bash
crontab -e
```
然后在打开的文件中添加以下行:
```
0 0 * * * python /path/to/mysql_backup.py
```
其中,`0 0 * * *`表示每天的0点执行备份任务。`/path/to/mysql_backup.py`应该替换为脚本实际的路径。保存并关闭文件即可。
相关推荐















