Mysql数据库的备份和恢复

1.备份单个数据库  

  mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下:

    语法:mysqldump –u <用户名> -p <数据库名>备份的文件名

      单个数据库备份例子:      

MariaDB [oldboy]> select database();
+------------+
| database() |
+------------+
| oldboy |
+------------+
1 row in set (0.00 sec)

MariaDB [oldboy]> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| test |
+------------------+
1 row in set (0.00 sec)

备份单个库:oldboy库

mysqldump -uroot -p123456 -B oldboy > oldboy0531_B.sql

  注意:加上-B后,备份的时候,会有创建数据库并use库的过程。

删除数据库中备份过的库oldboy,然后将备份的数据重新导入数据库:

  删除前的oldboy库:

  

MariaDB [(none)]> use oldboy;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [oldboy]> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| test |
+------------------+
1 row in set (0.00 sec)

MariaDB [oldboy]> select * from test;
+----+-----+-------------+
| id | age | name |
+----+-----+-------------+
| 1 | 16 | li xiao hai |
| 2 | 20 | li lei |
| 3 | 22 | da yu er |
| 4 | 26 | li p |
+----+-----+-------------+

开始删除oldboy库:

  

MariaDB [oldboy]> drop database oldboy;
Query OK, 1 row affected (0.09 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| test2_utf8 |
+--------------------+
5 rows in set (0.00 sec)

上述可知:oldboy库删除成功!接下来开始恢复删除前的备份:

  开始恢复oldboy库:

  [root@localhost tmp]# mysql -uroot -p123456 </tmp/oldboy0531_B.sql

开始查看是否恢复oldboy库:

  

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboy |
| performance_schema |
| test |
| test2_utf8 |
+--------------------+
6 rows in set (0.00 sec)

MariaDB [(none)]> use oldboy ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [oldboy]> select * from test;
+----+-----+-------------+
| id | age | name |
+----+-----+-------------+
| 1 | 16 | li xiao hai |
| 2 | 20 | li lei |
| 3 | 22 | da yu er |
| 4 | 26 | li p |
+----+-----+-------------+
4 rows in set (0.00 sec)

上述可知:恢复oldboy库成功!

1.1利用mysqldump命令对指定的库进行压缩备份

[root@localhost tmp]# mysqldump -uroot -p123456 -B oldboy|gzip > oldboy0531_B_B.sql.gz

[root@localhost tmp]# ls -l oldboy0531_B_B.sql.gz
        -rw-r--r-- 1 root root 807 May 16 23:25 oldboy0531_B_B.sql.gz

1.2利用mysqldump命令备份多个库(-B参数后可以指定多个库)

具体事例参看1.1

2.分库备份

  2.1利用命令对单个库的多个表备份:实例  

语法:mysqldump –u用户名–p 数据库名表名1 表名2 >备份的文件名

提示:不能加-B参数了,因为库oldboy后面就是oldboy表了,指定-B就表示后面的都是库

  

mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| class1 |
| class2 |
| school |
+-----------------+
3 rows in set (0.00 sec)

mysqldump -uroot -p  test2 class1 class2 >/tmp/ class1_and_class2.sql

[root@localhost tmp]# ls
class1_and_class2.sql ks-script-oDCh_J mysql.sock mysql.sock.lock test1_and_test2.sql

  2.2备份单个表

    语法:mysqldump –u 用户名–p 数据库名表名>备份的文件名

提示:不能加-B参数了,因为库oldboy后面就是oldboy表了,指定-B就表示后面的都是库

    实例:

      mysqldump -uroot -p  test2 class1  > class1.sql      

[root@localhost tmp]# ls
                       class1_and_class2.sql class1.sql

最后说明下一个问题:

关于mysqldump的参数说明:  

1、-B备份多个库(添加create和use库的语句)

2、-d只备份库表结构

3、-t只备份数据(sql语句形式)

4、-T分离库表和数据不同的文件,数据是文本,非SQL语句

5、-A备份数据库中所有的数据

6、--compact去掉注释,适合调试输出,生产不使用

7、-F刷新binglog日志,生成新文件,将来增量恢复从这个文件开始

8、--master-data增加binlog日志文件名及对应的位置点(即CHANGE MASTER语句)

--master-data=1不注释,--master-data=2注释

9、-x –lock-all-tables  锁表,当某一时刻备份数据时需要加入此参数,以确定备份数据时是从某一时刻开始的

10、-l –lock-tables  对读锁表

11、--single-transaction适合innodb事务数据库备份

innodb表在备份时,通常启动选项—single-transaction来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据

12、-q 不做缓冲查询,直接导入输出

  

mysql数据库的备份和恢复的更多相关文章

  1. 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)

    一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...

  2. Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

    Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...

  3. Linux系统下MySQL数据库的备份和恢复

    当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务 ...

  4. MySQL 数据库的备份和恢复

    1.DOS命令 mysqldump /*DOS命令生成文本文件*/ mysqldump -u username -h host -ppassword dbname [tbanme1,tbname2,. ...

  5. [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原

    通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...

  6. Java代码实现MySQL数据库的备份与还原

    通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...

  7. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  8. mysqldump常用于MySQL数据库逻辑备份

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  9. mysql数据库的备份和还原的总结

    mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...

随机推荐

  1. Spring详解(八)------事务管理

    PS:本篇博客源码下载链接:http://pan.baidu.com/s/1mi3NhX2 密码:3io2 1.事务介绍 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指 ...

  2. Ubuntu下安装和使用开源的tts软件Flite

    Flite是什么? Flite是一个小型.快速的TTS系统,是festival的C版本,可用于嵌入式系统,支持WinCE.Palm OS 等. 下载方法: wget http://www.festvo ...

  3. CMake设置编译参数

    项目中的CMake编译参数一直参照Muduo进行设置. Muduo的CMakeLists.txt中,MAKE_CXX_FLAGS设置较为清晰明了,因此一直在项目中沿用. set(CXX_FLAGS - ...

  4. django —— KindEditor - 跨域上传图片

    #跨域上传方法 def frontupload(request): if request.method == 'POST': item = {} file = request.FILES.get('i ...

  5. Python并发目录

    Python并发目录 Python-socket网络编程 Python网络编程-IO阻塞与非阻塞及多路复用 Python进程-理论 Python进程-实现 Python进程间通信 Python进程池 ...

  6. vue计算属性(通过计算得来的属性)

    1.computed:是一个计算属性,用来监听属性的变化 eg: <p>computed:{{count}}</p> computed:{     count(){     c ...

  7. 冒泡 MS Azure 不便宜。。。

    一直在等 MS Azure 中国开卖, 最近有消息说正式商用了... 看看去,ok 发现官方网站 很奇葩.没有购买的地方 说毛线 啊 卧槽 欺骗感情还是吊人胃口? 好看了一下VM的价格,卧槽真不便宜. ...

  8. ES6躬行记(8)——数字

    一.进制 ES6不仅完善了数字的八进制形式,还补充了一种十六进制形式,并且添加了全新的二进制形式.下面的三个变量分别表示八进制.十六进制和二进制的10,注释中给出了该进制的另一种写法. var oct ...

  9. 痞子衡嵌入式:恩智浦半导体全系无线(BLE, Zigbee, Thread, 2.4G, Sub-1G)微控制器芯片一览

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦半导体全系列无线微控制器芯片. IoT物联网是未来的趋势,半导体厂商作为IoT产业的上游,主要提供核心的无线芯片,作为半导体知名厂 ...

  10. 2018 ACM-ICPC Asia Beijing Regional Contest (部分题解)

    摘要 本文主要给出了2018 ACM-ICPC Asia Beijing Regional Contest的部分题解,意即熟悉区域赛题型,保持比赛感觉. Jin Yong’s Wukong Ranki ...