【第八章】MySQL数据库备份—逻辑备份
一、数据库备份
1.命令简介:
# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
1)关于数据库名:
-A, --all-databases 所有库
school 数据库名
school stu_info t1 school 数据库的表stu_info、t1
-B, --databases bbs test mysql 多个数据库
2)关于其它参数说明:
--single-transaction #InnoDB 一致性 服务可用性
-x, --lock-all-tables #MyISAM 一致性 服务可用性
-E, --events #备份事件调度器代码
--opt #同时启动各种高级选项
-R, --routines #备份存储过程和存储函数
-F, --flush-logs #备份之前刷新日志
--triggers #备份触发器
--master-data=1|2 #该选项将会记录binlog的日志位置与文件名并追加到文件中
2、操作过程:
1)创建库表:
mysql> create database school;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| school |
| sys |
+--------------------+
5 rows in set (0.00 sec) mysql> use school;
Database changed mysql> select * from school.t1;
Empty set (0.00 sec)
mysql> create table t2 (id int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t1 values (1),(2);
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec) mysql>
2)逻辑备份:
[root@localhost ~]# mysqldump -uroot -p'Yanglt123.' --all-databases \
> --single-transaction \
> --routines \
> --triggers \
> --master-data= \
> --flush-logs > /tmp/`date +%F`-mysql-all.sql` mysqldump: [Warning] Using a password on the command line interface can be insecure. #此提示是密码明文显示的愿意
[root@localhost tmp]#
注意事项:
--master-data= #该选项将会记录binlog的日志位置与文件名并追加到文件中
参数为1和2的时候,都是把position日志截断,如果为2的话第22行为注释状态,为1的时候没有注释,建议选择1: [root@localhost tmp]# vim ---mysql-all.sql 可以
-- Position to start replication or point-in-time recovery from
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=; --
:set nu
二、数据库恢复
1. 停止数据库 【systemtl stop mysqld 】
2. 清理环境 【rm -rf /var/lib/mysql/*;】
3. 启动数据库 【初始密码 /var/log/mysqld.log】
4. 重置密码 【新密码 】
5. mysql恢复数据 【新密码 】
6. 刷新授权 【备份时密码 】
注:如果不是一个新的数据库环境,我们需要从第一步开始,如果已经是一个新的数据环境,我们可以直接从第5步执行。
先创建一个表,等一下验证恢复情况:
mysql> create table t2 (id int);
Query OK, rows affected (0.02 sec) mysql> insert into t2 values(),()
-> ;
Query OK, rows affected (0.03 sec)
Records: Duplicates: Warnings: mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| t1 |
| t2 |
+------------------+
rows in set (0.00 sec) mysql> Bye
[root@localhost ~]# )停止数据库
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]#
)清理环境
此处暂时不删除bin-log日志
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# rm -rf /var/lib/mysql/*
3)启动数据库
[root@localhost ~]# systemctl start mysqld
4)重置密码
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log|tail -n 1
2018-09-19T09:48:39.418109Z 1 [Note] A temporary password is generated for root@localhost: aBm<-wrj4NSV
[root@localhost ~]# mysqladmin -uroot -p'aBm<-wrj4NSV' password "Yanglt123."
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]#
5)恢复数据
[root@localhost ~]# mysql -uroot -p'Yanglt123.' < /tmp/2018-09-19-mysql-all.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost ~]#
可以看到它恢复到了备份点,刚才创建的表t2是在备份点之后生成的,可以看到表中没有t2:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| school |
| sys |
+--------------------+
5 rows in set (0.01 sec) mysql> use school;
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
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| t1 |
+------------------+
1 row in set (0.00 sec) mysql>
6) 刷新授权
改完密码后与备份点的密码可能不一致,所有我们要执行此步骤,来实现与备份点密码一致。
[root@localhost ~]# mysql -p'Yanglt123.' -e 'flush privileges'
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost ~]# 7)建议在逻辑备份恢复时,暂停BINLOG
mysql> SET SQL_LOG_BIN=0;
Query OK, 0 rows affected (0.02 sec)
mysql> source /tmp/2018-09-19-mysql-all.sql;
三、
【第八章】MySQL数据库备份—逻辑备份的更多相关文章
- 学会4种备份MySQL数据库(基本备份方面没问题了)
前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么 ...
- MYSQL的备份与恢复--逻辑备份mysqldump
目录 0.备份与恢复概述 1.逻辑备份-完整备份与恢复 2.逻辑备份-增量备份与恢复 (1)环境准备 (2)恢复全量数据 (3)恢复增量备份 3.新来的开发妹子删了库! (1)模拟环境准备 (2)全备 ...
- MySQL数据库的定时备份
1. 创建shell脚本 vim backupdb.sh 创建脚本内容如下: #!/bin/sh db_user="root" db_passwd=" db_name=& ...
- Mysql数据库如何自动备份
Mysql数据库如何自动备份 一.总结 一句话总结:用navicat配合windows的批处理即可 navicat windows批处理 二.Mysql数据库自动备份 参考:Mysql数据库自动备份 ...
- 知识点:Navicet Mysql数据库电脑本地备份
Navicet Mysql数据库电脑本地备份 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击“计划”,再点击“新建批处理作业”. 2.双击上面的可用任务,它就 ...
- Navicet Mysql数据库电脑本地备份
Navicet Mysql数据库电脑本地备份 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击"计划",再点击"新建批处理作业" ...
- 实现MySQL数据库的实时备份
实现MySQL数据库的实时备份 使用MySQL Replication 吴剑 2018-08-03 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 ht ...
- linux下应用crontab对mysql数据库进行定时备份
linux下应用crontab对mysql数据库进行定时备份 @(编程) mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份. 我写了一个mysqlbackup. ...
- Mysql数据库自动定时备份软件推荐--MySqlBackupFTP(免费,亲测可用,附使用图示)
MySqlBackupFTP是一款Mysql数据库自动定时备份软件,免费版本就基本上可以满足我们的需求,不需要什么破解版,可直接官网下载安装使用. 先看结果(日志): 软件界面: 可以设定计划任务,每 ...
随机推荐
- crobtab不执行定时任务的原因及解决办法
服务未能启动或者权限问题.路径问题,网上很多种解决办法,就不多的说了. 1.查看crond日志: cat /var/log/cron 刚开始我的日志里面并没有执行写的脚本. 原因在于在脚本开始没有写s ...
- 【腾讯敏捷转型No.6】如何打造称手的敏捷工具
通常情况下,大家对于敏捷的感受就是:大家一起来开站立晨会啦!然后一大早,大家拿着早餐,围成一个圈,听一个人在讲话. 在很多公司,决定采用敏捷之后,都会从晨会开始,因为很多人觉得敏捷其它模块都很难学习, ...
- python-基础小游戏,人在 江湖飘,哪能不挨刀,我几刀砍死你
#人在 江湖飘,哪能不挨刀,我几刀砍死你 #规则:5赢4. 4赢3 .3赢2. 2赢1 . 1赢5 #提示:绝对值函数abs #假设:老王和老李 import random import time p ...
- Python 基础 函数
python 什么是函数 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. python 函数的调用 Python内置了很多有用的函数,我们可以直接调用. 要调用 ...
- NodeJ node.js基础
因为是Node服务器端的,怎样实现前台和后台请求以及回应 URL(由什么组成的 ),传输的内容:表单数据 文件数据 [图片.压缩包.各种后缀文件] URL的组成 URL由三部分组成: 协议类型 , ...
- 快速提高谷歌浏览器(Chrome)自带下载器的网速
之前每次下载东西都是复制好下载链接到迅雷中下载,会提高成倍网速,但是时间一长,感觉不方便,废话不多说,上干货~ 由于中国防火墙(GFW)的强大,在线下载Google浏览器的时候速度非常慢,如果只是单独 ...
- Windows Oracle连接ORA-12541:TNS:无监听程序
上面两篇是安装和连接,这里写一下碰到的问题,安装后使用SQL Developer连接出现ORA-12541:TNS:无监听程序.网上搜了一下是安装的Oracle中自带的JDK是32位,而程序中使用的S ...
- jenkins+maven+docker集成java发布(二)#远程发布
jenkins+maven+docker集成java发布(一)中写了在Jenkins服务器自动部署业务,那需要将java项目部署到其他服务器怎么操作 这里需要依赖插件Publish Over SSH ...
- sourcetree的安装及使用
sourcetree下载地址:https://www.sourcetreeapp.com/ 点击安装包安装 此前需要跳转到bitbucket登录,我没有账号,所以我直接跳转到到https://bitb ...
- python实现文件夹的排序
我的github地址. 代码: # -*- coding: utf-8 -*- __author__ = "YuDian" ''' v1.0: 2018/3/19 21:39 完成 ...