mysql数据库的备份和恢复
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数据库的备份和恢复的更多相关文章
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- Linux系统下MySQL数据库的备份和恢复
当我们MySQL数据库保存重要数据的时候,备份工作极为重要.本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务 ...
- MySQL 数据库的备份和恢复
1.DOS命令 mysqldump /*DOS命令生成文本文件*/ mysqldump -u username -h host -ppassword dbname [tbanme1,tbname2,. ...
- [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- Java代码实现MySQL数据库的备份与还原
通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...
- 如何用SQL语句实现Mysql数据库的备份与还原
以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...
- mysqldump常用于MySQL数据库逻辑备份
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- mysql数据库的备份和还原的总结
mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...
随机推荐
- 【MySQL】sql_mode引起的一个问题和总结
[背景] 之前项目中,项目组计划将现场的MySQL5.5升级到5.7,以提升主从同步性能.使用半同步复制,以及解决一些现场问题等.安排测试组进行验证,测试同事反馈实验室环境中发现有入库失败,我查看了e ...
- Mybatis3.2不支持Ant通配符TypeAliasesPackage扫描的解决方案
业务场景 业务场景:首先项目进行分布式拆分之后,按照模块再分为为api层和service层,web层. 其中订单业务的实体类放在com.muses.taoshop.item.entity,而用户相关的 ...
- PHP的会话控制
页面数据的作用域: 当前页共享数据:变量.常量 两个页面间传递数据:get,post 跟踪用户的多页面数据共享(会话):session.cookie 全局数据共享:文件.数据库.memcached C ...
- muduo-ThreadLocal实现细节——阻止销毁未定义对象
muduo利用pthread_key_t实现ThreadLocal模板类. 具体代码如下所示: template<typename T> class ThreadLocal : nonco ...
- [学习笔记]利用e-debug和GetWindowTextA破解CM课件
本课是针对注册时候的报错弹窗不是信息框MessageBox,而是窗体的情况 首先打开课件看一下 既然课件是个易语言程序,那使用E-DEBUG试试 E-DEBUG打开课件,点击“start”,课件弹出登 ...
- Jenkins系列之四——设置邮件通知
Jenkins持续集成,当我们自动打包部署完,我们可以发送一封邮件给相关的负责人.现介绍一下如何在Jenkins中配置实现邮件通知. 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的 ...
- Java线程之 InterruptedException 异常
Java线程之 InterruptedException 异常 当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法. 抛 ...
- java扫盲 接口 Enumeration
摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 记起2年前,高中生活最多的是老师的批评.谢谢! -泥沙砖瓦浆木匠 ...
- ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]
介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web ...
- linux平均负载的理解及原因排查
当系统响应缓慢时,一般会用top或uptime命令查看系统负载是否过高. 例如输入uptime命令显示如下图,其中23:47:19表示现在的时间,up 260 days,14:39表示系统运行了多久, ...