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

mysql的语句备份详解

使用mysqldump工具备份(适用于逻辑备份)

mysqldump是 MySQL 自带的一个非常实用的逻辑备份工具,它可以将数据库中的数据和结构以 SQL 语句的形式导出到文件中。

1. 备份整个数据库
mysqldump -u [用户名] -p [数据库名] > [备份文件名].sql

参数说明

  • -u [用户名]:指定连接 MySQL 服务器的用户名。
  • -p:表示需要输入该用户的密码。
  • [数据库名]:要备份的数据库名称。
  • >:将备份内容重定向到指定的文件。
  • [备份文件名].sql:指定备份文件的名称,通常以 .sql 结尾。

示例:备份名为 testdb 的数据库,用户名为 root

mysqldump -u root -p testdb > testdb_backup.sql

执行该命令后,系统会提示你输入 root 用户的密码,输入正确密码后,testdb 数据库的备份文件 testdb_backup.sql 就会生成在当前目录下。

2. 备份多个数据库
mysqldump -u [用户名] -p --databases [数据库名1] [数据库名2] ... > [备份文件名].sql

示例:备份 testdb1 和 testdb2 两个数据库。

mysqldump -u root -p --databases testdb1 testdb2 > multiple_dbs_backup.sql
3. 备份所有数据库
mysqldump -u [用户名] -p --all-databases > [备份文件名].sql

示例

mysqldump -u root -p --all-databases > all_dbs_backup.sql

使用mysqlpump工具备份(适用于高并发场景,MySQL 5.7 及以上版本)

mysqlpump 是 MySQL 5.7 引入的一个新的逻辑备份工具,相比 mysqldump,它在处理高并发场景时性能更好。

备份整个数据库
mysqlpump -u [用户名] -p [数据库名] > [备份文件名].sql

示例:备份 testdb 数据库。

mysqlpump -u root -p testdb > testdb_mysqlpump_backup.sql

使用 MySQL 命令行进行物理备份(适用于 InnoDB 存储引擎)

物理备份是直接复制数据库的物理文件,这种方法速度快,但需要在数据库停止服务时进行,适用于 InnoDB 存储引擎。

1. 停止 MySQL 服务
# 对于使用systemd的系统
sudo systemctl stop mysql
# 对于使用SysVinit的系统
sudo service mysql stop
2. 复制数据库文件

数据库文件通常存储在 /var/lib/mysql 目录下,你可以将需要备份的数据库文件夹复制到其他位置。

sudo cp -R /var/lib/mysql/[数据库名] /path/to/backup/directory

示例:备份 testdb 数据库。

sudo cp -R /var/lib/mysql/testdb /home/user/backup/
3. 启动 MySQL 服务
# 对于使用systemd的系统
sudo systemctl start mysql
# 对于使用SysVinit的系统
sudo service mysql start

以上就是几种常见的 MySQL 备份方法及其具体操作,你可以根据实际需求选择合适的备份方式。

  1. 创建目标数据库(如果需要)
    如果备份文件是针对某个特定数据库的,而该数据库在当前 MySQL 服务器中不存在,需要先创建该数据库。在 MySQL 命令行中执行以下命令:

    CREATE DATABASE [数据库名];
    

    例如,创建名为 testdb 的数据库:
    CREATE DATABASE testdb;
    
  2. 选择目标数据库
    使用以下命令选择要恢复数据的数据库:
    USE [数据库名];
    

    例如,选择 testdb 数据库:
    USE testdb;
    
  3. 执行备份文件恢复数据
    退出 MySQL 命令行(输入 EXIT; 或按 Ctrl + D),然后在终端中执行以下命令来恢复数据:
    mysql -u [用户名] -p [数据库名] < [备份文件名].sql
    

    例如,使用 testdb_backup.sql 文件恢复 testdb 数据库:
    mysql -u root -p testdb < testdb_backup.sql
    
    4.也可以在mysql中恢复备份语句
  • 执行备份文件中的 SQL 语句:
SOURCE 备份文件的完整路径;

例如,备份文件在 /home/user/backup/testdb_backup.sql


http://www.kler.cn/a/536942.html

相关文章:

  • 文件上传全详解
  • Python----Python高级(并发编程:协程Coroutines,事件循环,Task对象,协程间通信,协程同步,将协程分布到线程池/进程池中)
  • BFS算法篇——广度优先搜索,探索未知的旅程(上)
  • 接入 deepseek 实现AI智能问诊
  • 初窥强大,AI识别技术实现图像转文字(OCR技术)
  • 【蓝桥杯—单片机】第十届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记
  • 11.享元模式 (Flyweight)
  • windows同时安装两个不同版本的Mysql
  • C++ ——— 多态的概念及其原理和实现
  • BGP边界网关协议(Border Gateway Protocol)选路、属性(一)
  • 使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式
  • QWidget中嵌入QQuickWidget,从qml端鼠标获取经纬度点(double类型),发到c++端。把c++端的对象暴露个qml端调用
  • 第九天 动手实践ArkTS,创建简单的UI组件
  • BFS算法——广度优先搜索,探索未知的旅程(下)
  • 陶氏环面包络减速机:为工业视觉检测注入“精准动力”!
  • 【机器学习】深入探索SVM概念及其核方法
  • 3NF讲解
  • Web3D基础: GLTF文件材质和纹理扫盲
  • matlab simulink 117-电路故障分析
  • Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II
  • SQL高级技巧:高效获取两表交集数据的三种方法(JOIN、IN、EXISTS)
  • Spring Cloud 01 - 微服务概述
  • “无痕模式”VS指纹浏览器,哪个更安全?
  • 自定义飞书Webhook机器人api接口
  • 【vscode源码】如何编译运行vscode及过程中问题解决
  • 在 Java 中使用 JDBC 连接数据库时,DriverManager 的主要作用是什么?请简要描述其工作原理。