Mariadb-mysqldunp备份

导出数据库

mysqldump是适用于MySQL/Mariadb数据库上的一款逻辑备份工具,支持热备,冷备,温备等操作。
常见参数:
-A 备份所有的数据库
-Y 备份所有的表空间  (表空间这个东西的具体表现形式是啥我也不知道)
-y不备份任何表空间
-d 只备份数据表中的结构
-B 存储哪几个数据库 啥表结构啥的数据一股脑都给存储了
-F,  意思就是说备份多个数据库的时候,每备份一个就刷新一次日志 默认是刷新一次
-f  收到报错也继续备份
-t  只备份表数据
-S sock连接
-e 将多个insert语句整合批量导出 对应的设置是 --extended-insert   加  --net-buffer-length 一起使用可以提升导出效率  同时			
--max_allowed_packet这个值设置太小,导入就会存在问题
--ignore-table=name 忽略某个表
--events 备份数据库事件
--flush logs 在备份开始前先执行flush logs 命令刷新二进制日志到磁盘,并生成一个新的二进制日志文件
--insert-ignore 忽略重复的语句
-x 是在整个存储过程中,锁表 一般是可以读取的那种 实现温备
--no-create-info  不使用create teble重建备份的表
--order-by-primary 将备份的表中的行按主键排序或者第一个唯一键排序。当备份MyISAM表且将被载入到InnoDB表时很有用,打包备份本身的时间会较长。
--routines 备份routines(存储过程和函数)
-where='where_condition' 仅备份与where条件中匹配的行。
--log-error = name将警告和错误附加到给定文件。
--net-buffer-length=设置通信时缓冲数据大小 最小4k,最大16M,默认是1M
--delete-master-logs 这个参数是备份日志的,好像是备份完了之后还得把日志给干掉啥逻辑就不懂了
--single-transaction 备份事务会自动快照,只支持innodb存储引擎
--max-allowed-packet=允许单个发送或接送的最大数据包大小
--single-transaction --quick  主要是针对大型表(事务类型那种),主要是为了保障数据的一致性,后面那个是可以提升备份速度的东西,没有保障事务一致性要求的话,可以省略(要是遇到了问题在来更新)

备份所有数据库: -A =--all-databases
[root@test tmp]# mysqldump -uroot -p -A >/tmp/allsql.sql

备份其中某个或者某几个数据库: -B 备份某几个数据库
[root@test tmp]# mysqldump -uroot -p -B ab abc ac  >/tmp/ALL3.sql
[root@test tmp]# ll -h /tmp/ALL3.sql
-rw-r--r-- 1 root root 12K 9月  14 12:27 /tmp/ALL3.sql

导出单张表:
mysqldump -u用户名 -p密码 -P端口号  --database 数据库名 --tables 表名> 路劲 #其中-P是默认3306端口,使用默认端口的就可以忽略此参数
mysqldump -uroot -p --databases test_1 --tables host_inventory >/tmp/host_inventory.sql

只备份数据表结构: -d 备份表结构
[root@test tmp]# mysqldump -uroot -p -d abc abe >/tmp/1sql

只备份insert数据:-t +-e +--net-buffer-length 联合使用
[root@test tmp]# mysqldump -uroot -p -e --net-buffer-length=5M  -t abc abe >/tmp/abe.sql

忽略某张表或者某几张标配:	忽略单张表 -个 --ignore-table 多站表就多个ignore-table参数即可  ignore-table=库名.表名
[root@test tmp]# mysqldump -uroot -p --ignore-table=abc.sa  --ignore-table=abc.ss  abc -d >/tmp/abc6.sql

通过select方式查询想要内容并且导出:select 参数 from 表 into outfile "文件所在路劲"
MariaDB [abc]> select * from abc into outfile "/data/mydata/ac.txt";

通过--where/-w方式导出部分数据  mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径
[root@test tmp]# mysqldump -uroot -p abc abe --where='id=4' > /tmp/id2.sql   	
数据的导出就介绍到这里,以后发现啥新操作在来更新

导入数据库

#导入数据库(导入之前必须创建一个空数据库)
通过mysql命令方式导入:
[root@test ~]# mysql -uroot -p -e 'create databases ac'
[root@test ~]# mysql -uroot -p ac < /data/mydata/abc.sql
通过登录mysql方式导入:
MariaDB [abc]> create database ab;
MariaDB [abc]> use ac;
MariaDB [abc]> source /data/mydata/abc.sql				#source 加sql文件路劲就可以轻松导入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值