MySQL 备份

本文最后更新于:2024年3月18日 凌晨

MySQL 备份

导出

导出一张表

1
2
3
mysqldump -u用户名 -p密码库名表名 > 文件名。

mysqldump -uroot -p123456 school student > a.sql

导出多张表

1
2
3
mysqldump -u用户名 -p密码库名表1 表2 表3 > 文件名。

mysqldump -uroot -p123456 school student result > a.sql

导出所有表

1
2
3
mysqldump -u用户名 -p密码库名 > 文件名。

mysqldump -uroot -p123456 school > a.sql

导出数据库

1
2
3
mysqldump -u用户名 -p密码 -B 库名 > 文件名。

mysqldump -uroot -p123456 -B school > a.sql
  • 注意:可以 -w 携带备份条件。

导出数据库中表的结构

  • 需要加上 -d 参数。
1
mysqldump -h localhost -u root -p db_test-d > ~/customers_stru.sql

导入

在登录 mysql 的情况下

1
mysql> source 备份文件。

在不登录的情况下

1
mysql -u用户名 -p密码库名 < 备份文件。

定期备份

创建shell 脚本。

1
2
3
4
5
6
#!/bin/sh
db_user="root"
db_passwd="123456"
db_name="userdb"
name="$(date +"%Y%m%d%H%M%S")"
/usr/bin/mysqldump -u$db_user -p$db_passwd $db_name >>/home/backup/$name.sql
  • /usr/bin/mysqldump: mysql 数据库安装目录下的 mysqldump 备份工具路径。
  • dbname:需要备份的数据库名字。
  • /home/backup/$name.sql:备份文件输出位置,可以根据情况自行设定。

2. 给 shell 脚本添加执行权限

1
$ chmod +x backupdb.sh

3. 给脚本添加定时任务

1
2
3
4
$ crontab -e
# 输入上一行命名进行编辑定时任务,最后添加如下内容
00 01 * * * /bin/sh /usr/local/mysql/backupdb.sh
#上面的定时任务意思是每天凌晨1点会执行自动备份脚,进行MySQL数据库的定时备份

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!