使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

前端技术 2023/09/10 MYSQL

 
1、各种用法说明

A. 最简单的用法:

复制代码 代码如下:

mysqldump -uroot -pPassword [database name]
> [dump file]

上述命令将指定数据库备份到某dump文件(转储文件)中,比如:

复制代码 代码如下:

mysqldump -uroot -p123 test > test.dump

生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。

B. --opt

如果加上--opt参数则生成的dump文件中稍有不同:

建表语句包含drop table if exists tableName

insert之前包含一个锁表语句lock tables tableName write,insert之后包含unlock tables


C. 跨主机备份

使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:

复制代码 代码如下:

mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb

-C指示主机间的数据传输使用数据压缩

D. 只备份表结构

复制代码 代码如下:

mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump

将只备份表结构。--databases指示主机上要备份的数据库。如果要备份某个MySQL主机上的所有数据库可以使用--all-databases选项,如下:

复制代码 代码如下:

mysqldump --all-databases
> test.dump
 

E. 从备份文件恢复数据库

复制代码 代码如下:

mysql [database name] < [backup file name]
 

2、结合Linux的cron命令实现定时备份

比如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump文件为gz格式,那么可在/etc/crontab配置文件中加入下面代码行:

复制代码 代码如下:

30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date \'+%m-%d-%Y\'`.sql.gz

 前面5个参数分别表示分钟、小时、日、月、年,星号表示任意。date \'+%m-%d-%Y\'得到当前日期的MM-DD-YYYY格式。

 3、一个完整的Shell脚本备份MySQL数据库示例

复制代码 代码如下:

#vi /backup/backup.sh

#!bin/bash
cd /backup
echo \"You are in backup dir\"
mv backup* /oldbackup
echo \"Old dbs are moved to oldbackup folder\"
File = backup-$Now.sql
mysqldump -u user -p password database-name > $File
echo \"Your database backup successfully completed\"

本文地址:https://www.stayed.cn/item/26553

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。