Docker中Mysql数据备份

Docker中Mysql数据备份

  • 1.创建备份用户
  • 2.准备测试数据
  • 3.完全备份
  • 4.知识点解析

1.创建备份用户

百度过程中,有人说用最高权限root直接备份,不可取不安全,所以单独创建一个用于备份的用户
学习–去看–Mysql 备份所需要的权限

1.进入Mysql容器
docker exec -it 40e25670af17 /bin/bash2.进入mysql,-p 回车 输入密码(密码是隐式),再回车即登陆进去
mysql -uroot -p3.创建用户 '账号'@'权限' IDENTIFIED BY '密码'
mysql> CREATE USER 'mysql_back'@'%' IDENTIFIED BY 'mysql_back';4.查询用户,分别执行下面两句
mysql> use mysql;
mysql> select user from user;+------------------+
| user             |
+------------------+
| mysql_back       |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+5.设置普通权限 - 感觉不加也可以,主要是下面6的权限
mysql> GRANT all ON test_db.* TO 'mysql_back'@'%' WITH GRANT OPTION;
6.设置备份需要的权限,若未加,备份会报错
mysql> GRANT reload,REPLICATION CLIENT,select ON *.* TO 'mysql_back'@'%' WITH GRANT OPTION;7.查询用户权限mysql> show grants for 'mysql_back'@'%';+---------------------------------------------------------------------------------------+
| Grants for mysql_back@%                                                               |
+---------------------------------------------------------------------------------------+
| GRANT SELECT, RELOAD, REPLICATION CLIENT ON *.* TO `mysql_back`@`%` WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `test_db`.* TO `mysql_back`@`%` WITH GRANT OPTION             |
+---------------------------------------------------------------------------------------+

学习–去看后半部分–备份数据库需要的权限

2.准备测试数据

1.创建数据库
mysql> CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;2.查询数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| test_db            |
| mysql              |
| performance_schema |
+--------------------+
12 rows in set (0.00 sec)3.查询创建数据库完整语句
show create database test_db;+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                                                   |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)4.创建表,两句分开执行
mysql> use test_db;
mysql> create table tb_test ( id INT(11), name VARCHAR(25) );5.查看表
mysql> show tables;+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_test           |
+-------------------+
1 row in set (0.00 sec)6.插入数据mysql> insert into tb_test values  (1,"1"),(2,"2";7.查询数据
mysql> select * from tb_test;+------+------+
| id   | name |
+------+------+
|    1 | 1    |
|    2 | 2    |
+------+------+
4 rows in set (0.00 sec)

3.完全备份

1.备份命令
docker exec -it 40e25670af17 mysql -umysql_back -pmysql_back test_db < /data/docker/mysql-back/TestBackup.sql2.备份完进入mysql 容器
docker exec -it 40e25670af17 /bin/bash3.从宿主机 mysql-back 下的sql 复制内容到 容器内部 tmp 下
docker cp /data/docker/mysql-back/TestBackup.sql 40e25670af17:/tmp/4.进入mysql,回车输入密码
mysql -uroot -p5.使用test_db数据库
mysql> use test_db;6.插入新数据
mysql> insert into tb_test values (3,'3a'),(4,'4a');7.查询
mysql> select * from tb_test;
+------+------+
| id   | name |
+------+------+
|    1 | 1    |
|    2 | 2    |
|    3 | 3a   |
|    4 | 4a   |
+------+------+
4 rows in set (0.00 sec)
8.恢复 完全备份 数据
mysql> source /tmp/TestBackup.sqlQuery OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec
......
9.再次查询数据,发现恢复到插入新数据前
mysql> select * from tb_test;
+------+------+
| id   | name |
+------+------+
|    1 | 1    |
|    2 | 2    |
+------+------+
2 rows in set (0.00 sec)

4.知识点解析

数据库备份有哪些方式?
答:数据库备份分为 逻辑备份 与 物理备份,逻辑备份 分为 完全备份、差异备份、增量备份3种

学习–了解–数据库的两种备份方式:逻辑备份和物理备份
学习–了解–一分钟看懂完全备份、差异备份以及增量备份

.为什么给数据库用户设置了 all 权限,依旧需要额外再设置备份需要的权限?答:因为 ALL PRIVILEGES 不包含备份用户需要的权限ALL PRIVILEGES 包含
[
select,
insert,
update,
delete,
create,
drop,
references,
index,
alter,
create temporary tables,
lock tables,
execute,
create view,
show view,
create routine,
alter routine,
event,
trigger
]
2.备份语句解析
【
如果想备份全部数据库 --all-databases,/home/*.sql 备份的位置
mysqldump -u root -p密码 --all-databases> /home/0716_.sql;
】
【
这个语句中
mysqldump -uroot -p --single-transaction --master-data=2 --routines --flush-logs -B --all-databases > fullbackupfile28.sql--single-transaction、 --master-data=2 表示一致性备份,一般一起使用不单用
--routines 备份函数触发器
--flush-logs备份前刷新日志(保证数据完全备份,若数据库开了二进制日志,则不需要使用该参数和一致性参数--single-transaction、 --master-data=2)
-B:最大的特点就是加入了库,数据恢复时不需要再创建库
】

学习–重要–Linux下MySQL数据库备份和恢复-定时任务
学习–Docker MySql 备份与还原
学习–docker MySQL数据库的备份与还原,以及每天定时自动备份
学习–linux下mysql数据库备份与恢复(全量+增量)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.Hive系列之DML数据操作(二)

语句和Mysql、PgSQL都类似&#xff0c;简单过一遍 # 全表查询 select * from studen; # 列查询 select name, age from student; # 列别名 select name AS name1, age age1 from student; # 常用函数 count max min sum avg等 select avg(score) avg_score from student; # 限…

修复漏洞(一)离线升级Docker版本

前言 一般人最好用的修复漏洞的方式就是更新版本起因是使用的Docker版本被检测出来有一堆漏洞&#xff08;例如&#xff1a;Docker 操作系统命令注入漏洞(CVE-2019-5736)&#xff09;更新环境无法联网&#xff0c;只能通过下载二进制文件的形式进行安装 步骤 可先通过which …

基于单片机的智能窗帘智能晾衣架系统的设计与实现

功能介绍 以STM32单片机单片机作为主控系统&#xff1b;OLED液晶显示当前环境温湿度&#xff0c;光照强度&#xff0c;时间&#xff0c;开关状态等信息&#xff1b;雨滴传感器检测当前环境是否下雨&#xff0c;天气下雨检测&#xff0c;天气潮湿时自动收衣服&#xff1b;可以通…

RabbitMq(一)

一、基本概念、常见工作模式以及简单使用 MQ全称Message Queue (消息队列)&#xff0c;是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 小结 MQ消息队列&#xff0c;存储消息的中间件分布式系统通信两种方式:直接远程调用和借助第三方完成间接通信发…

openGauss学习笔记-09 openGauss 简单数据管理-创建数据库

文章目录 openGauss学习笔记-09 openGauss 简单数据管理-创建数据库9.1 语法格式9.2 参数说明9.3 示例 openGauss学习笔记-09 openGauss 简单数据管理-创建数据库 数据库安装完成后&#xff0c;默认生成名称为postgres的数据库。您需要自己创建一个新的数据库。 9.1 语法格式…

低代码技术:提高效率降低成本的全新选择

一、前言 企业想要独立的应用程序&#xff0c;开发者在寻求更快速、更高效、更灵活的开发方法&#xff0c;以适应快速变化的市场需求。在这个背景下&#xff0c;低代码技术以提高效率降低成本的方式走进人们视野&#xff0c;成为了一种全新的应用程序开发方式。 二、相比传统的…

金融中的数学:概率分布(下)

上篇博客介绍了离散型概率分布&#xff0c;本篇博客介绍连续型概率分布。 1.连续型概率分布 连续型均匀分布&#xff08;Continuous Uniform distribution&#xff09;是一种描述在特定区间内取值均匀分布的概率分布。在该分布中&#xff0c;随机变量在给定区间内的取值概率密…

上门服务小程序|上门家政小程序开发

随着现代生活节奏的加快和人们对便利性的追求&#xff0c;上门家政服务逐渐成为了许多家庭的首选。然而&#xff0c;传统的家政服务存在着信息不透明、服务质量不稳定等问题&#xff0c;给用户带来了困扰。为了解决这些问题&#xff0c;上门家政小程序应运而生。上门家政小程序…

Jupyter入门使用教程

1 Jupyter Notebook与Jupyter Lab简介 Jupyter Notebook是一个开源的Web应用&#xff0c;在深度学习领域非常活跃。用户可以在这里创建和分享可执行代码、可视化结构和注释说明的文档。 Jupyter Notebook以网页的形式展现&#xff0c;用户可以在此网页中直接编辑代码、运行程…

通过 Lucene.Net 支持的 .NET 索引和搜索引擎的高效使用与探索:Examine 的简单索引与搜索数据应用以及其可扩展性分析

通过 Lucene.Net 支持的 .NET 索引和搜索引擎的高效使用与探索&#xff1a;Examine 的简单索引与搜索数据应用以及其可扩展性分析 在当前的技术环境中&#xff0c;搜索和索引数据变得越来越重要&#xff0c;尤其是在处理大量数据时。这就使得我们需要一种能够快速、精确、高效…

程序员如何制作PPT?

有道无术&#xff0c;术尚可求也&#xff1b;有术无道&#xff0c;止于术。大家好&#xff0c;我是程序员雪球&#xff0c;今天让我们一起探讨如何从零开始制作高质量的 PPT。 上周&#xff0c;领导要求我撰写一份关于 4到6月持续集成运营分析的报告&#xff0c;并通过 PPT 的形…

STM32单片机示例:多个定时器同步触发启动

文章目录 前言基础说明关键配置与代码其它补充示例链接 前言 多个定时器同步触发启动是一种比较实用的功能&#xff0c;这里将对此做个示例说明。 基础说明 该示例演示通过一个TIM使能时同步触发使能另一个TIM。 本例中使用TIM1作为主机&#xff0c;使用TIM1的使能信号作为…

win10 vscode 打包springboot项目

1 查看 java -version 2 环境变量配置 JAVA_HOME where java # D:\JDK\bin\java.exe1 在"系统变量"部分&#xff0c;点击"新建(N)"按钮。 2 在"变量名"字段中输入 JAVA_HOME 3 在"变量值"字段中输入 JDK 的安装路径。例如&#xff0…

基于 Linux 的轻量级多线程 HTTP 服务

使用基本的Linux系统调用来创建一个TCP socket&#xff0c;监听端口8080&#xff0c;并在接受到客户端连接时创建一个新的线程来处理连接。每个连接处理函数都是一个独立的线程&#xff0c;读取客户端请求并发送固定的HTTP响应。 代码&#xff1a; #include <iostream> …

简笔风和写实风的区别

现实主义和风格化 当我们谈论现实主义和风格化时&#xff0c;我们是什么意思&#xff1f;这看起来相当明显&#xff0c;现实主义指的是模仿逼真的逼真的图形。它不一定需要存在于现实世界中&#xff0c;但被传达为它属于我们的世界。10年前&#xff0c;我们认为现实的东西在今…

尝试-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 活动地址 三、图片生成提示词与反向提示词&#xff1a; 提示词&#xff1a;realistic portrait painting of a japanese…

Effective C++学习笔记(6)

目录 条款32. 确定你的public继承塑模出is-a关系条款33.避免遮掩继承而来的名称条款34.区分接口继承和实现继承条款35.考虑virtual函数以外的其他选择条款36.绝不重新定义继承而来的non-virtual函数条款37.绝不重新定义继承而来的缺省参数值条款38.通过复合塑模出has-a或“根据…

spring-boot-starter-parent 与 spring-boot-dependencies

Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上&#xff0c;你不用指定这些依赖项的版本号&#xff0c;因为Spring Boot都为你管理好了。当更新Spring Boot时&#xff0c;会相应的更新依赖。 Maven管理依赖 Maven用户可以继承spring-boot-starter-parent项目&am…

OpenMP并行化傅里叶变换

设计思想 傅里叶变换&#xff0c;表示能将满足一定条件的某个函数表示成三角函数&#xff08;正弦和/或余弦函数&#xff09;或者它们的积分的线性组合。在不同的研究领域&#xff0c;傅里叶变换具有多种不同的变体形式&#xff0c;如连续傅里叶变换和离散傅里叶变换。 快速傅…

windows各种文件操作、系统相关的命令行脚本

目录 写在前面文件操作命令说明遍历文件并写进txt按行读取txt并文件计数文件重命名 参考完 写在前面 1、本文内容 windows各种文件操作、系统相关的命令行脚本 请保存为.bat运行 2、平台 windows10 3、转载请注明出处&#xff1a; https://blog.csdn.net/qq_41102371/article/…