数据备份与恢复

数据备份

系统意外崩溃或者硬件的损坏都可以导致数据库的丢失,因此MySQL管理员应该定期备份数据库,使得在意外情况发生时,尽可能减少损失。

使用MySQLdump命令备份

MySQLdump命令执行时,可以将数据库备份成一个文本文件,该文件中实际包含了多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据。

语法:

mysqldump -u user -h host -p password dbname[tbname,[tbname...]] > filename.sql

user : 用户名称

host : 登录用户主机名称

password : 登录密码

dbname : 数据库名称

tbname : 数据库中需要备份的表名称

> : 告诉MySQLdump将备份数据表的定义和数据写入备份文件

filename.sql : 备份文件名称

比如需要备份testdb数据库中所有的表:

mysqldump -u root -p testdb>C:/backup/testdb20211225.sql

Tip : 需要保证备份路径下的文件夹存在,否则将会找不到指定路径而备份失败。

比如需要备份testdb数据库中dept表:

mysqldump -u root -p testdb dept>C:/backup/testdb20211225.sql

比如需要备份多个数据库,testdb1和testdb2:

mysqldump -u root -p --databases testdb1 testdb2>C:/backup/testdb20211225.sql

Tip :需要使用“--databases”参数,并且多个数据库之间用空格分隔。

比如需要备份系统中所有的数据库:

mysqldump -u root -p --all-databases>C:/backup/testdb20211225.sql

直接复制整个数据库目录

因为MySQL表保存为文件方式,因此可以直接复制MySQL数据库的存储目录及文件进行备份。

在Windows平台下,默认目录通常为:

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 8.0\data

这种方式简单、快速、有效。要想保持备份的一致性,备份前需要对相关表执行LOCK TABLES操作,然后对表执行FLUSH TABLES。这样当复制数据库目录中的文件时,允许用户继续查询表。

但是这种方法对InnoDB存储引擎的表是不适用的,而且这种方法数据最好恢复到相同版本的服务器中,否则有可能不兼容。

使用MySQLhotcopy工具备份

MySQLhotcopy是一个Perl脚本。使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库。它是备份数据库或者单个表最快的途径,但它只能运行在数据库目录所在的机器上,并且只能备份MyISAM类型的表。

MySQLhotcopy在UNIX系统中运行。

语法:

mysqlhotcopy db_name_1, ... db_name_n /path/to/new_directory

比如需要备份testdb数据库到/usr/backup目录:

mysqlhotcopy -u root -p testdb /usr/backup

Tip : 要想执行MySQLhotcopy,必须拥有可以访问备份的表文件权限。

数据恢复

通过恢复已经备份的数据可以尽量减少因为意外情况导致数据丢失的损失。

使用MySQL命令恢复

对于已经备份的包含CREATE和INSERT语句的文本文件,可以使用命令导入到数据库中。

语法:mysql -u user -p [dbname] < filename.sql

比如将C:/backup/testdb20211225.sql文件中的备份导入到数据库中:

mysql -u root -p testdb < C:/backup/testdb20211225.sql

Tip : 必须现在MySQL服务器中创建testdb数据库。

如果已经登录MySQl服务器,还可以使用source命令导入sql文件。

语法:source filename

比如需要将C:/backup/testdb20211225.sql文件中的备份导入到数据库中:

use testdb ;

source C:/backup/testdb20211225.sql;

直接复制到数据库目录

如果数据库通过复制数据库文件备份,那么可以直接复制备份的文件到MySQL数据目录下实现恢复。主要注意的是,保存备份数据的数据库和待恢复的数据库服务器的主版本号必须相同。而且该方式仅仅对MyISAM引擎的表有效,对于InnoDB存储引擎的表不可用。

执行恢复以前关闭MySQL服务器,将备份的文件或者目录覆盖MySQL的data目录,然后重启MySQL服务。

使用MySQLhotcopy快速恢复

在MySQL服务器停止运行时,将备份的数据库文件复制MySQL存放数据的位置(MySQL的data文件夹),重启MySQL服务即可。

比如需要从MySQLhotcopy复制的备份恢复数据库:

cp -R /usr/backup/testdb usr/local/mysql/data

【学习笔记】MySQL 数据备份与恢复相关推荐

  1. mysql没法修改数据_MySQL学习笔记之数据的增、删、改实现方法

    本文实例讲述了MySQL学习笔记之数据的增.删.改实现方法.分享给大家供大家参考,具体如下: 一.增加数据 插入代码格式: insert into 表明 [列名-] values (值-) creat ...

  2. mysql分页概念_MySQL学习笔记之数据定义表约束,分页方法总结

    本文实例讲述了MySQL学习笔记之数据定义表约束,分页方法.分享给大家供大家参考,具体如下: 1. primary key 主键 特点:主键是用于唯一标识一条记录的约束,一张表最多只能有一个主键,不能 ...

  3. MySQL 数据备份与恢复(小学生篇)

    (此篇文章是我13年学习时候的文章,比较古老了,所以称之为小学生篇)前言:MySQL 数据备份与恢复是很重要的,虽然对于 PHPer 的这方面的知识要求不高,但是也一定要会使用,不然到时候" ...

  4. mysql数据备份与恢复_MySQL数据备份与恢复

    常见的MySQL管工具 mysql 命令行 跨平台 MySQL官方bundle包自带 MySQL-Workbench 图形 跨平台 MySQL官方提供 MySQL-Front 图形 Windows 开 ...

  5. 学习笔记之数据可视化(二)—— 页面布局(下)

    续上一章 2.7 地图区域(.map) 2.7.1 实现步骤: 2.8 用户统计模块 2.8.1 布局: 2.8.2 柱状图 2.9 订单模块 2.9.1 订单区域布局 2.9.2 订单区域(orde ...

  6. 学习笔记之数据可视化(二)——页面布局(中)

    续上一章 2.6 监控区域布局 2.6.1 布局结构解析: 2.6.2 样式描述: 2.6.3 HTML结构及CSS样式代码 2.6.3 ### 监控区域-效果 2.6.7 点位区域(point) 2 ...

  7. 学习笔记之数据可视化(二)——页面布局(上)

    ~续上一章 2. 项目页面布局 2.1 基础布局 2.1.1 PC端屏幕宽度适配设置 2.1.2 主体容器viewport背景图片 2.1.3 HTML结构 2.1.4 css样式代码 2.2 边框图 ...

  8. 学习笔记之数据可视化(一)——项目适配方案

    目录 最终效果展示 1. 数据可视化适配方案 1.1 项目需求 1.2 PC端适配方案 1.3 使用到的技术 2. 数据可视化项目开发 项目准备 1.1 文件准备 1.2 引入js和css文件 1.3 ...

  9. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

  10. Kotlin学习笔记12——数据类和密封类

    Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...

最新文章

  1. 管理费用负数报不了怎么办_我的心脏血管堵了很久,大夫说打不开了,我可怎么办?...
  2. 互联网1分钟 |1123
  3. ax在c语言中意思啊,【数论】整理关于ax+by=c
  4. 数组的定义格式三_省略的静态初始化
  5. 【转】探索c#之Async、Await剖析
  6. PTA10、统计字符个数 (10 分)
  7. linux屏幕怎么放大_02|初始Linux——Windows与Linux区别
  8. gephi生成网络关系图_用 NetworkX + Gephi + Nebula Graph 分析lt;权力的游戏gt;人物关系(上)
  9. Activemq判断队列存活脚本(一)
  10. 9款很棒的网页绘制图表JavaScript框架脚本
  11. linux 与 windows操作系统的区别
  12. jspstudy oracle,SQL不走索引的几种常见情况
  13. 徐思201771010132《面向对象程序设计(java)》第四周学习总结
  14. 软件系统部署手册模版
  15. Linux安装配置FTP(pure-ftpd)
  16. 流程引擎之compileflow简介
  17. [C语言][数据存储+指针进阶]关关难过关关过 迈向光明之路 而我义无反顾 冲
  18. 《完全用Linux工作》(原版)作者:王垠
  19. 【RX解码BT656输出】XS9922A 四合一同轴高清解码芯片方案 国产 交期无忧 对标TP9930
  20. Kingston4G U盘做DOS引导的方法

热门文章

  1. 21天学通c++之7.10 for 循环 初始化多个变量
  2. 大厂没有方法论(上)
  3. 从这3个方面,帮你大幅度提升用户的搜索体验
  4. 移动端怎么设计适合的表单?
  5. 为什么你的用户总是不满意?
  6. 老司机教你将流量价值提升100倍
  7. 爱我别走:产品大改版时,如何避免用户流失?
  8. PMcaff每日推荐5本--产品经理必读的互联网专业书籍
  9. 登录界面-安全密码设计
  10. C#机器学习插件 ---- AForge.NET