我的相关文章:https://www.cnblogs.com/gered/p/10817309.html

目录:

1.单实例联系

  1.1、备份单个数据库联系多种参数使用

    【1】mysqldump命令备份演示  【2】查看备份文件  【3】用备份文件还原

  1.2、mysqldump 各类参数释义

    【1】--default-character-set=utf8    #默认使用该字符集导出  【2】-B  #加上建库与库使用  

    【3】--compact  #减少备份文件垃圾信息(但会丢数据,生产不可用)  【4】数据库名|gzip  #压缩备份文件

    【5】-d    #只备份表结构    【6】-t  #只备份表数据  【7】 -A  #all-database的意思,备份所有数据库(以及表、用户等等所有数据)

    【8】-F  #重新生成binlog日志  【9】-R  #备份存储过程、触发器

  1.3、多个库备份

    【1】备份多个数据库合并到一个备份文件:mysqldump -uroot -p -B test1 test|gzip > /opt/mutil.sql.gz

    【2】多个数据库备份出对应的多个备份文件:直接用mysqldump 一个库一个库的备份。如果库多,可以使用show databases;再配合grep、sed等命令动态获取所有库,详情见本节相关内容; 或者使用for循环备份~分库分表

  附录1:使用MySQLhotcopu工具快速备份MyIsam引擎下的数据库数据

  附录2:mysqldump 参数释义大全

        1.备份库
mysqldump -uroot -p test -B --default-character-set=UTF8> /mysql/bak/bak_mysql_test.sql 2.备份表(这里不能加-B,否则就会默认都是数据库 )
mysqldump -uroot -p test test1 --default-character-set=UTF8> /mysql/bak/bak_testdb_test1.sql      3.备份多个数据库
【1】--databases:mysqldump -uroot -p --databases test test_1 --default-character-set=UTF8> /mysql/bak/bak_multidb_test_1.sql
【2】-B:mysqldump -uroot -p -B test test_1 --default-character-set=UTF8> /mysql/bak/bak_multidb_test_2.sql
效果一样~ 4.备份所有数据库
【1】--all-databases: mysqldump -uroot -p123456 --all-databases > /mysql/bak/all_mysql.sql
【1】-A: mysqldump -uroot -p123456 -A > /mysql/bak/all_mysql.sql

基本语法形式:

  mysqldump -uroot -p123456 db_name> 备份的文件名

1.单实例练习

1.1备份单个数据库联系多种参数使用

(1)mysqldump备份基本演示

    备份目标对象如图:

    

--开始备份test数据库到 /opt/mysql_test_bak.sql
mysqldump -uroot -p test1 >/opt/mysql_test_bak.sql #这里可以加参数,--default-character-set=utf8 ,用其来做字符集导出
mysqldump -uroot -p --default-character-set=utf8 test1 >/opt/mysql_test_bak.sql
  【1】#查看是否备份成功

       

  【2】#看看备份文件里面的内容,其实是把现有的所有东西都删除掉,用sql重新插入一遍。。但直接cat查看有很多乱七八糟的东西。

  

 【2】egrep -v "#|\*|--|^$" /opt/mysql_test_bak.sql

  #另外一个简便命令查看备份文件内容,去掉乱七八糟的东西

     

(2)还原

#还原命令,这里只是通过 mysqldump -uroot -p test1 >/opt/mysql_test_bak.sql  来备份,如果test1库不存在,这里就会还原失败,因为没有建库、切换到这个库的操作;
mysql -uroot -p123456 test1 </opt/mysql_test_bak.sql

总结:

  【1】备份:备份是把现有表结构,表数据,全都以sql的方式体现。但是注意,如果直接用mysqldump就不会有判断是否存在库,也不会使用库(见上图)。要有的话加-B参数;

  【2】还原: 就是删除老的同名库和表,然后再新建库、表,插入表数据。

1.2各类参数释义

【1】--default-character-set=utf8    #默认使用该字符集导出,案例语句: mysqldump -uroot -p --default-character-set=utf8 test1 >/opt/mysql_test_bak.sql

【2】-B  #加上建库与库使用,案例语句:mysqldump -uroot -p --default-character-set=utf8 -B test1>/opt/mysql_test_B_bak.sql

  如图:

   

【3】--compact  #减少备份文件垃圾信息,一般用来测试(因为加这个参数,会把里面很多东西干掉,比如锁)案例语句:mysqldump -uroot -p --default-character-set=utf8 --compact -B test1>/opt/mysql_test_B_bak.sql

  

【4】数据库名|gzip  #压缩备份文件,案例语句:mysqldump -uroot -p --default-character-set=utf8  -B test1|gzip>/opt/mysql_test.bak.sql.gz

  

  压缩前后大小很明显。

【5】-d  #只备份表结构

  

【6】-t  #只备份表数据

总结:使用mysqldump其实算是逻辑备份(逻辑备份:就是把数据生成sql语句的备份,物理备份:直接打包压缩备份数据文件的备份)

【1】备份用:mysqldump -uroot -p db_name > 备份文件                        #这里只会有数据sql,不会产生建库、使用库

【2】还原:mysql -uroot -p db_name< 备份文件            #如果是使用【1】备份的备份文件,那么备份时的库名必须存在否则报错。如果使用【3】备份的备份文件,那么实例中无论是否存在db_name数据库,也可以还原。

【3】-B:备份文件里加上create database语句与 usedr database语句;

【4】db_name|gzip :压缩备份文件 ,输出文件名后缀因为gz;

1.3多个库备份

【1】备份多个数据库合并到一个备份文件

  mysqldump -uroot -p -B test1 test|gzip > /opt/mutil.sql.gz  #直接库与库之间加空格即可

  查看情况如下;用gzip -d解压gz文件。

  然后查看:egrep -v "#|\*|--|^$" /opt/mutil.sql

  

【2】多个数据库备份出对应的多个备份文件

  (1)查看数据库

    mysql -uroot -p123456 -e "show databases;"

    

  (2)排除系统数据库及其他信息,取出想要的数据库名

    mysql -uroot -p123456 -e "show databases;"|grep -Evi "database|infor|perfor"

    

  (3)前后加命令字符

    mysql -uroot -p123456 -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#/^mysqldump -uroot -p123456 -B#g'

    

  (4)前后追加命令字符生成完整脚本

    

  (5)再完善,整体效果查看(这里额外新建了个目录专门放入备份文件/opt/bak  ,备份语句里面也加了个--events )

    

【2】for循环方式备份多个数据库成多个备份文件;

  进入/u01/my3306/scripts/ 目录下(这个是我mysql的安装目录),新建 vi fenku.sh

  代码如下

#for dbname in `mysql -uroot -p123456 -e "show databases;"|grep -Evi "database|infor|perfor"`
for dbname in `mysql -uroot -p123456 -N -e'show databases;'`
do
mysqldump -root -p123456 --events -B ${dbname}|gzip >/opt/bak/${dbname}_bak.sql.gz
done

  (1)删除备份目录下所有备份以便我实验

    rm -f /opt/bak/*

  (2)运行脚本

    sh fenku.sh

  

附录1:使用MySQLhotcopu工具快速备份MyIsam引擎下的数据库数据

      

附录2:mysqldump 参数释义大全
mysqldump详细参数参考表:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

(3.1)mysql备份与恢复之mysqldump的更多相关文章

  1. mysql 备份报错mysqldump: [Warning] Using a password on the command line interface can be insecure.

    -------------------------------------------------------------------------------- mysql 备份报错mysqldump ...

  2. MySQL备份工具之mysqldump使用

    MySQL备份工具之mysqldump使用说明 一.备份分类 根据能否停用数据库,将备份类型分为: 1. 冷备:数据库服务停止后备份 2. 温备:只能对数据库进行读操作,不能进行写操作 3. 热备:在 ...

  3. MySQL备份--xtrabackup与mysqldump工具使用

    MySQL备份----xtrabackup与mysqldump工具的使用 一.Xtrabackup8.0: 一个用于MySQL数据库物理热备的备份工具,支持MySQL.Percona server和M ...

  4. mysql备份工具 :mysqldump mydumper Xtrabackup 原理

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

  5. mysql备份与还原-mysqldump备份、mysql与source还原

    以下都以在linux操作系统上的mysql为例 mysqldump备份 mysqldump实际就是将数据库中的数据转化为建库.建表和插入记录的sql语句 1.备份一个数据库 [或其中几个表],不指定表 ...

  6. mysql备份数据库出错mysqldump: [ERROR] unknown option '--no-beep'

    公司数据库前一版本是部署在windows上面的,由于业务需要,迁移到linux,之前一段脚本在windows下使用定时任务执行正常. mysqldump -uzzz -pxxxx --opt --de ...

  7. 【MYSQL备份】利用mysqldump将一个数据库复制到另一个数据库

    假设要将服务器A上的数据库test备份到服务器B 1.在服务器B上新建数据库cp_test mysql> create database cp_test; Query OK, row affec ...

  8. MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复 实例

    innobackupex 的使用方法1.完全备份 参数一是完全备份地址 完全备份到/data/mysql/back_up/all_testdb_20140612 目录下innobackupex --u ...

  9. Mysql 备份恢复之 Mysqldump 工具

    目前正在学习中,看到mysqldump工具导出的数据都是文本形式的,如果是blob或text大对象类型导出的是什么格式的?这个需要后续研究.下面只先总结下简单的. 一.备份1.备份Mysql一个数据库 ...

随机推荐

  1. Java基础(二)面向对象(上)

    面向对象基础知识 面向对象是相对面向过程而言的 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象 面向对象是基于面向过程的 面向对象的特征: 封 ...

  2. php获取当前被调函数的参数列表

    下面是php中的一个获取当前别调用函数的参数列表的测试程序,感受一下php类库的强大之处: // 测试获取参数列表 getArgs('aaa', 'bbb', 'ccc', 123, true); f ...

  3. 如何用jQuery获取选中行固定列的数据

    [本文出自天外归云的博客园] 问题:把选中行的ID统计出来,组成一个数组传给后台(选中行的特点:class为danger) 办法如下: // 多选后点击下线按钮 $("#offline&qu ...

  4. 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其二)

    上一篇说到的嵌套Json带有斜杠的问题,如下图: 上一篇中用反射C#类的方法,在序列化Json阶段实现了去掉斜杠,现在还有一种相对更简单的方法,就是在反序列化阶段,读取Json时通过字符串的操作,把这 ...

  5. windows下局域网文件共享,不需要登录账号密码

    基于局域网中,有时候需要传输一个大的文件都需要用到U盘,很麻烦,所以优选文件共享.但是有时候会出现需要登录账户密码,所以需要设置第三步,步骤如下: 1.选中要共享的文件夹,右键有一个共享选项,点击出现 ...

  6. WordPress 安装插件导致 HTTP 500 内部服务器错误的问题

      春节这几天忙着过节,一直没有看网站,今天登陆上来看到插件有更新,点开更新后,悲剧发生了.页面就无法加载,出现错误无法加载了,着实让我慌了慌(想到重来就郁闷) Chrome:该网页无法正常工作www ...

  7. 消息中间件系列四:RabbitMQ与Spring集成

    一.RabbitMQ与Spring集成  准备工作: 分别新建名为RabbitMQSpringProducer和RabbitMQSpringConsumer的maven web工程 在pom.xml文 ...

  8. No Ads for Blogs

    最近浏览器出问题了还是博客园登录的问题. 每次进入自己博客都要输入密码. 然后进入某一篇博文查看时,底部总会有些垃圾广告. 怎么办呢. 好吧,真抱歉,为了营造良好的阅读环境,只好给你屏蔽掉了. 其实也 ...

  9. java模拟http请求(代理ip)

    java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST

  10. 微信企业号-根据code获取成员信息(过期code)

    二次请求获取成员信息时,会报如下错误: { "errcode": "40029", "errmsg": "invalid code ...