各位用户为了找寻关于MySQL数据备份之mysqldump的使用方法的资料费劲了很多周折。这里教程网为您整理了关于MySQL数据备份之mysqldump的使用方法的相关资料,仅供查阅,以下为您介绍关于MySQL数据备份之mysqldump的使用方法的详细内容
一、mysqldump 简介
mysqldump 是 MySQL 自带的逻辑备份工具。MySQLdump是一个数据库逻辑备份程序,可以使用对一个或者多个mysql数据库进行备份或者将数据传输到其他mysql服务器。执行mysqldump时需要账户拥有select权限才可以进行备份数据表,show view权限用于备份视图,trigger权限用于备份触发器等。
mysqldump不是大数据备份的解决方案,因为mysqldump需要通过重建sql语句来实现备份功能,对于数据量比较大的数据库备份与还原操作,速度比较慢,打开mysqldump备份会发现里面其实就是数据库sql语句的重现。
它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。
二、备份命令
2.1 命令格式
mysqldump [选项] 数据库名 [表名] > 脚本名
或
mysqldump [选项] --数据库名 [选项 表名] > 脚本名
或
mysqldump [选项] --all-databases [选项] > 脚本名
2.2 选项说明
2.3 实例
备份所有数据库:
? 1mysqldump -uroot -p
--all-databases > /backup/mysqldump/all.db
备份指定数据库:
? 1mysqldump -uroot -p test > /backup/mysqldump/test.db
备份指定数据库指定表(多个表以空格间隔)
? 1mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db
备份指定数据库排除某些表
? 1mysqldump -uroot -p test
--ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db
三、还原命令
3.1 系统行命令
? 1 2 3mysqladmin -uroot -p
create
db_name
mysql -uroot -p db_name < /backup/mysqldump/db_name.db
注:在导入备份数据库前,db_name如果没有,是需要创建的; 而且与db_name.db中数据库名是一样的才可以导入。
3.2 soure 方法
? 1 2 3
mysql > use db_name
mysql > source /backup/mysqldump/db_name.db
附:常用命令
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23mysqldump -u root -p
--all-databases > D:/mysql.sql #备份所有数据库
mysqldump -uroot -p123456
--databases db1 db2 db3 > D:/mysql.sql #备份多个数据库
mysqldump -hhostname -Pport -uroot -p
"123456"
--databases dbname > D:/mysql.sql #远程备份(远程时,需要多加入-h:主机名,-P:端口号)
#带条件导出指定表的部分数据,注意mysqldump导出时时区默认设置为+00:00,w后面的
timestamp
时间也会被认为是+00:00时区的数据,从而导致数据有问题
mysqldump -h222.222.221.197 -uroot -proot DBname TABLEname -t
--complete-insert --skip-tz-utc -w"sys_create > '2020-12-25 16:00:00'">export.sql
#一次性导出导入数据库(!!!慎用,两个服务器写反了就完蛋了,因为导出的sql中有
drop
table
语句)
mysqldump
--host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2
#导出为压缩包,这样会小很多,线上服务器尽量用这个,推荐!!!
mysqldump
--opt -uroot -p123456 -h127.0.0.1 --databases dbname --ignore-table=dbname.table1 | gzip>/db_back/dbname_`date +%F`.zip
总结
到此这篇关于MySQL数据备份之mysqldump使用的文章就介绍到这了,更多相关MySQL mysqldump的使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://www.cnblogs.com/markLogZhu/p/11398028.html