当前位置: 首页 > news >正文

MySQL数据备份和恢复

MySQL数据备份和恢复

数据备份

mysqldump是MySQL数据库备份工具,可以备份MySQL数据库中的数据和结构,生成.sql文件,方便数据的迁移和恢复。

使用mysqldump工具前一定要配置环境变量

  1. 打开开始菜单,搜索“环境变量”。
  2. 点击“编辑系统环境变量”。
  3. 点击“环境变量”按钮。
  4. 在“系统变量”下,点击“新建”。
  5. 输入“MYSQL_HOME”作为变量名,将MySQL安装目录的路径作为变量值(例如:C:\Program Files\MySQL\MySQL Server 5.7)。
  6. 点击“确定”保存变量。
  7. 在“系统变量”下,找到“Path”变量并点击“编辑”。
  8. 在“变量值”字段的末尾添加“%MYSQL_HOME%\bin”(不包括引号)。
  9. 点击“确定”保存变量。
  10. 重启计算机以使更改生效。

mysqldump的常用参数

  • –databases:备份多个数据库,后面跟着数据库名称,中间用空格分隔。
  • –tables:备份多个表,后面跟着表名称,中间用空格分隔。
  • –where:备份符合条件的数据,后面跟着条件语句。
  • –lock-tables:备份时锁定表,防止备份过程中数据被修改。
  • –single-transaction:在事务中备份,保证备份的数据一致性。
  • –add-drop-database:备份时添加DROP DATABASE语句。
  • –add-drop-table:备份时添加DROP TABLE语句。
  • –add-locks:备份时添加锁定语句。
  • –extended-insert:使用多行语法插入数据,提高备份效率。
  • –quick:使用单行语法插入数据,提高备份效率。
  • –compress:备份时压缩数据。
  • –result-file:指定备份文件名及路径。
  • –user:指定连接MySQL的用户名。
  • –password:指定连接MySQL的密码。
  • –no-data : 备份表结构但不包括表

导出单个数据库(包括数据库中的数据)

语法:

mysqldump --user=用户名 -p 数据库名称 > 目标目录及文件名称

例如:

mysqldump --user=root -p demo > E:\数据库备份\demo.sql

导出单个数据库(不包含数据库中的数据)

语法:

mysqldump --user=用户名 -p --no-data 数据库 > 目标目录及文件名称

例如:

mysqldump --user=root -p --no-data demo > E:\数据库备份\demo.sql

导出多个数据库

语法:

注意:数据库之间用空格分开

mysqldump --user=用户名 -p --databases 数据库1 数据库2 ... > 目标目录及文件名称

例如:

mysqldump --user=root -p --databases demo1 demo2 > E:\数据库备份\demo.sql

导出数据库中的某张表(包含数据)

语法:

mysqldump --user=用户名 -p 数据库名称 表名称 > 目标目录及文件名称

例如:

mysqldump --user=root -p demo t_student > E://demo_t_student.sql

导出数据库中的某张数据表(不包含数据)

语法:

mysqldump --user=用户名 -p --no-data 数据库名称 表名称 > 目标目录及文件名称

例如:

mysqldump --user=root -p --no-data demo t_student > E://demo_t_student.sql

导出多张表

语法:

mysqldump --user=用户名 -p 数据库名称 --tables 数据表1 数据表2 > 目标目录及文件名称

例如:

mysqldump --user=root -p demo --tables table1 table2 > E:\数据库备份\demo_tables.sql

备份时锁定表

语法:

mysqldump --user=用户名 -p --lock-tables 数据表名称 > 目标目录及文件名称

例如:

mysqldump --user=root -p --lock-tables demo >  E:\数据库备份\demo.sql

在事务中备份

语法:

mysqldump --user=root -p --single-transaction 数据库名称 > 目标目录及文件名称

例如:

mysqldump --user=root -p --single-transaction demo > E:\数据库备份\demo.sql

添加drop database语句:

语法:

mysqldump --user=root -p --add-drop-database 数据库名称 > 目标目录及文件名称

添加drop table语句:

语法:

mysqldump --user=root -p --add-drop-table 数据库名称 > 目标目录及文件名称

添加时锁定语句

语法:

mysqldump --user=root -p --add-lock 数据库名称 > 目标目录及文件名称

使用多行语法插入数据

语法:

mysqldump --user=root -p --extended-insert 数据库名称 > 目标目录及文件名称

使用单行语法插入数据

语法:

mysqldump --user=root -p --quick 数据库名称 > 目标目录及文件名称

备份时压缩数据

语法:

mysqldump --user=root -p --compress 数据库名称 > 目标目录及文件名称

指定备份文件及地址

mysqldump --user=username -p 数据库名称 --result-file= 目标目录及文件名称

数据恢复

  • 创建一个新的数据库,用于恢复备份数据、

    create database demo1;
    
  • 使用/登录到新的数据库

    use demo;
    mysql --user=root -p demo1
    
  • 使用source命令导入备份的文件

    source E:\数据库备份\demo.sql
    
  • 恢复后可以使用show查看数据表,select验证数据

    show tables;
    select * from table1;
    

总结:

  • 数据备份
    • 可以保护数据免受意外删除,硬件故障,恶意软件等问题的影响
    • 要定期对数据进行备份,而且要在系统负载较小的时间段进行
    • 确保开启二进制日志,这样可以基于时间点或位置对数据进行恢复
    • 对特别重要的数据保留多份备份
    • 确定使用完整备份还是增量备份
      • 增量备份是指在一次完整备份或者上一次增量备份后,以后只需备份与前一个相比增加或者被修改的文件,
  • 数据恢复
    • 可以帮助恢复丢失的数据,保证业务的连续性和稳定性
    • 定期做备份恢复测试,保证备份是有效的,并且是可以恢复的
http://www.lryc.cn/news/64829.html

相关文章:

  • 数据结构与算法之链表: Leetcode 237. 删除链表中的节点 (Typescript版)
  • 继承的相关介绍---C++
  • Java多线程深入探讨
  • SpringCloud全面学习笔记之进阶篇
  • 英语中主语从句的概念及其用法,例句(不断更新)
  • 数组的子数组(亚阵列)、子序列,字符串的子串、子序列
  • MySQL 知识:迁移数据目录到其他路径
  • Go | 一分钟掌握Go | 8 - 并发
  • 【滤波】多元高斯
  • 单源最短路问题
  • Security方法注解权限控制过程及自定义权限表达式
  • vue 省市县三级联动
  • ChatGPT实现编程语言转换
  • 浅拷贝和深拷贝
  • 进程地址空间与页表方面知识点(缺页中断及写时拷贝部分原理)
  • Photoshop如何使用滤镜之实例演示?
  • Flutter 组件抽取:日期(DatePicker)、时间(TimePicker)弹窗选择器【仿照】
  • 基于opencv的YOLOV3对图片的目标检测
  • Mermaid流程图
  • 国产!全志科技T507-H工业核心板( 4核ARM Cortex-A5)规格书
  • java小记 2023-05-05
  • CentOS安装Nginx
  • CSS布局基础(CSS书写顺序 导航栏写法 常见问题)
  • 打造卓越 QML 层级设计:从入门到精通
  • shell流程控制之条件判断练习
  • linux中TF启动卡制作:磁盘分区文件同步
  • 【操作系统OS】学习笔记:第一章 操作系统基础【哈工大李治军老师】
  • Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
  • 庖丁解牛函数知识---C语言《2》
  • Git 使用教程:最详细、最正宗手把手教学(万字长文)