Docker中Mysql数据备份

这篇具有很好参考价值的文章主要介绍了Docker中Mysql数据备份。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建备份用户

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

1.进入Mysql容器
docker exec -it 40e25670af17 /bin/bash

2.进入mysql,-p 回车 输入密码(密码是隐式),再回车即登陆进去
mysql -uroot -p

3.创建用户 '账号'@'权限' 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.sql

2.备份完进入mysql 容器
docker exec -it 40e25670af17 /bin/bash

3.从宿主机 mysql-back 下的sql 复制内容到 容器内部 tmp 下
docker cp /data/docker/mysql-back/TestBackup.sql 40e25670af17:/tmp/

4.进入mysql,回车输入密码
mysql -uroot -p

5.使用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.sql

Query 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数据库备份与恢复(全量+增量)文章来源地址https://www.toymoban.com/news/detail-586127.html

到了这里,关于Docker中Mysql数据备份的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月02日
    浏览(57)
  • 【MySQL】数据备份(导出数据 / 导入数据)

     SELECT...INTO OUTFILE 是 MySQL 用于导出数据的语句,它允许将查询结果保存到指定的文件中。 该语句的基本语法如下:   column1, column2, ... :要导出的列名。 INTO OUTFILE \\\'file_path\\\' :指定导出数据时要保存到的文件路径。 FIELDS TERMINATED BY \\\'field_separator\\\' :指定字段之间的分隔符,默认

    2024年02月12日
    浏览(47)
  • Docker如何备份数据

    Docker容器备份数据的主要方法有以下几种: 1.1 使用 命令备份容器,这种方法将容器的当前状态保存为镜像,但是镜像只保存容器的状态,不保存容器的数据。 1.2 使用 命令备份容器,这种方法可以将容器的当前状态和数据都保存为镜像,但是镜像文件体积较大,不利于传输

    2024年02月16日
    浏览(28)
  • Mysql之数据备份

    3.查看通用查询日志是否开启 4.查看二进制日志是否开启 5.查看慢查询日功能是否开启 6.查看慢查询时间设置 7.在数据库中设置开启慢查询的方法 达到事务一致性(每次重启会重做) 确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,

    2024年02月09日
    浏览(32)
  • mysql(四)数据备份

    目录 前言 一、概述 二、备份的类型 (一)物理与逻辑角度  (二)数据库备份策略角度 三、常见的备份方法 四、完整备份 (一)打包数据库文件备份 (二)备份工具备份 五、增量备份 六、操作 (一)完整备份  (二)使用工具备份mysqldump   (三)增量修改 总结 在生

    2024年02月15日
    浏览(35)
  • MySQL 数据备份

    物理备份: 在文件系统层面,直接拷贝数据库相关文件(数据文件、索引文件和日志文件等)完成备份 在对MySQL数据进行备份的时候,主要备份以下内容: 用户信息: 例如MySQL的账号信息,账号的权限等。这些都是存放再mysql这个数据库中的。 业务数据: 相关的业务数据库

    2024年02月05日
    浏览(41)
  • MySQL数据备份

    备份的是建表,建库,插入,更新等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较慢,导入时可能会出现格式不兼容的突发情况,无法做增量备份和累计增量备份

    2024年01月23日
    浏览(53)
  • MySQL 数据备份和数据恢复

    目录 一、数据备份 1、概述 2、MySQLdump命令备份 1)备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4)备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 1、概述 数据备份是数据库管理员非常重要的工作之一。系统意

    2024年02月11日
    浏览(39)
  • MySQL 数据备份与恢复

    本次使用的MySQL版本为8.0.20 目录 一、数据备份 1.使用 MySQLdump 命令备份 (1)使用MySQLdump备份单个数据库中的所有表 案例:完成数据插入后,输入备份命令如下: (2)使用MySQLdump备份数据库中的某个表 案例:备份booksDB数据库中的books表,输入语句如下: (3)使用MySQLdump备

    2024年02月11日
    浏览(42)
  • mysql数据备份并重置

    1.备份mysql数据 mysqldump -uroot --single-transaction -R -E --databases lc2 cpm a10_goods self_warehouse /mnt/vdc1/var/lib/mysql/datadir/lc2_cpm_a10_goods_self_warehouse.sql -p Y6B2wb 2.初始化mysql mysqld --initialize; 3.修改配置文件 z mysql cd /etc/mysql/mysql.conf.d vim mysql.cnf 配置文件如下: 4.分配数据可执行权限 chown mysql:

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包