MYSQL数据备份之mysqldump命令详解(附脚本定时备份)

MYSQL数据备份之mysqldump命令详解(附脚本定时备份)

2023年7月30日发(作者:)

MYSQL数据备份之mysqldump命令详解(附脚本定时备份)⼀、常见备份命令介绍备份命令cpmysqldumpxtrabackup备份速度快慢较快恢复速度快慢较快介绍物理备份、灵活性低逻辑备份、适⽤所有存储引擎实现innodb热备、对存储引擎有要求功能很弱⼀般强⼤⼀般⽤于少量数据备份中⼩型数据量备份较⼤规模的备份热备份指的是当数据库进⾏备份时, 数据库的读写操作均不是受影响温备份指的是当数据库进⾏备份时, 数据库的读操作可以执⾏,但是不能执⾏写操作冷备份指的是当数据库进⾏备份时, 数据库不能进⾏读写操作, 即数据库要下线⼆、mysqldump备份2.1、mysqldump命令介绍[root@]> mysqldump -helpUsage: mysqldump [OPTIONS] database_name [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 []OR mysqldump [OPTIONS] --all-databases [OPTIONS]For more options, use mysqldump --help1.登录选项: -u user:指定⽤户 -h host:指定主机 -p:表⽰要使⽤密码 -E, --events: 备份事件调度器 -R, --routines: 备份存储过程和存储函数2.备份选项: --all-databases:备份所有数据库 --databases db1 db2:备份指定的数据库 --single-transaction:对事务引擎执⾏热备 --flush-logs:更新⼆进制⽇志⽂件 --master-data=2 1:每备份⼀个库就⽣成⼀个新的⼆进制⽂件(默认) 2:只⽣成⼀个新的⼆进制⽂件 --quick:在备份⼤表时指定该选项2.2、查看所属数据库、⽤户的权限1、查看mysql数据库中的所有⽤户:mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM ;2、查看数据库中具体某个⽤户的权限:mysql> show grants for 'user'@'localhost';

或mysql> select * from where user='root'G;

3、修改⽤户权限:mysql> grent all on *.* to `user`@`localhost`;mysql> flush privileges;Query OK, 0 rows affected (0.00 sec).4、向数据库施加读锁mysql> FLUSH TABLES WITH READ LOCK;

Query OK, 0 rows affected (0.00 sec)三、命令备份⽰例**导出命令⼤全**#导出education数据库⾥⾯的users表的表数据和表结构 mysqldump -u[⽤户名] -h[ip] -p[密码] -P[端⼝号] 数据库名 表名 >导出的⽂件名.sql mysqldump -uroot -h127.0.0.1 -proot -P3306 education users>d:/#导出包括系统数据库在内的所有数据库(默认保存在bin⽂件夹下⾯) mysqldump -uroot -proot --all-databases>#导出多张表: mysqldump -uroot -proot --databases test --tables t1 t2>#只导出表结构不导表数据,添加“-d”命令参数 mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education users>d:/#只导出表数据不导表结构,添加“-t”命令参数 mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education users>d:/#只导出test数据库的表结构 导出:mysqldump -uroot -proot --no-data --databases test> 导⼊:mysql -uroot -proot -h127.0.0.1 -P3306 test<

**导⼊命令⼤全** 格式:mysql -h[ip] -P[(⼤写)端⼝] -u[⽤户名] -p[密码] [数据库名] < d:(路径)

mysql -uroot -proot -h127.0.0.1 -P3306 education

#命令⾏导⼊ mysql> use test; mysql> source /home/test/四、脚本备份⽰例:#!/bin/bash#NAME:数据库备份#DATE:*/*/*#USER:***#设置本机数据库登录信息mysql_user="user"mysql_password="passwd"mysql_host="localhost"mysql_port="3306"mysql_charset="utf8mb4"date_time=`date +%Y-%m-%d-%H-%M`#保存⽬录中的⽂件个数count=10#备份路径path=/***/#备份数据库sql⽂件并指定⽬录mysqldump --all-databases --single-transaction --flush-logs --master-data=2 -h$mysql_host -u$mysql_user -p$mysql_password > $path_$(date +%Y%m%d_%H:%M).sql[ $? -eq 0 ] && echo "-----------------数据备份成功_$date_time-----------------" || echo "-----------------数据备份失败-----------------"#找出需要删除的备份delfile=`ls -l -crt $path/*.sql | awk '{print $9 }' | head -1`#判断现在的备份数量是否⼤于阈值number=`ls -l -crt $path/*.sql | awk '{print $9 }' | wc -l`if [ $number -gt $count ]then rm $delfile #删除最早⽣成的备份,只保留count数量的备份 #更新删除⽂件⽇志 echo "-----------------已删除过去备份sql $delfile-----------------" fi增加定时备份crontab -e* * * * *- - - - -| | | | || | | | +----------星期中星期⼏ (0 - 6) (星期天 为0)| | | +---------------⽉份 (1 - 12)

| | +--------------------⼀个⽉中的第⼏天 (1 - 31)| +-------------------------⼩时 (0 - 23)+------------------------------分钟 (0 - 59)添加定时任务(每天12:50以及23:50执⾏备份操作)50 12,23 * * * cd /home/;sh >>

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690652806a386997.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信