Linux备份MySQL数据库命令有哪些?

在Linux系统中备份MySQL数据库是日常运维中至关重要的任务,通过合理的备份策略可以有效防止数据丢失,以下是常用的MySQL数据库备份命令及相关操作方法的详细介绍。

linux备份mysql数据库命令
(图片来源网络,侵删)

使用mysqldump命令进行逻辑备份

mysqldump是MySQL自带的逻辑备份工具,能够将数据库结构和数据导出为SQL文件,适合中小型数据库的备份操作。

备份单个数据库

mysqldump -u [用户名] -p[密码] [数据库名] > [备份文件路径].sql

备份名为testdb的数据库到/backup/testdb_backup.sql

mysqldump -u root -ptest123 testdb > /backup/testdb_backup.sql

注意:-p后直接跟密码时不能有空格,建议通过交互式输入密码更安全(去掉密码参数,执行后输入密码)。

备份多个数据库

mysqldump -u [用户名] -p[密码] --databases [数据库1] [数据库2] > [备份文件路径].sql

例如同时备份db1db2

linux备份mysql数据库命令
(图片来源网络,侵删)
mysqldump -u root -p --databases db1 db2 > /backup/multi_db_backup.sql

备份所有数据库

mysqldump -u [用户名] -p[密码] --all-databases > [备份文件路径].sql

只备份数据库结构(不包含数据)

mysqldump -u [用户名] -p[密码] --no-data [数据库名] > [备份文件路径].sql

只备份数据(不包含结构)

mysqldump -u [用户名] -p[密码] --no-create-info [数据库名] > [备份文件路径].sql

使用mysqlhotcopy进行快速备份

mysqlhotcopy适用于MyISAM引擎的数据库,通过锁定表并直接复制数据文件实现快速备份,但需安装DBI和DBD-mysql模块:

mysqlhotcopy -u [用户名] -p[密码] [数据库名] /backup/directory

使用mysqldump进行压缩备份

为节省存储空间,可通过管道将备份文件直接压缩:

mysqldump -u [用户名] -p[密码] [数据库名] | gzip > /backup/[数据库名].sql.gz

定时备份脚本示例

通过crab设置定时任务,实现每日自动备份:

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
MYSQL_USER="root"
MYSQL_PASSWORD="test123"
# 备份单个数据库并压缩
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD testdb | gzip > $BACKUP_DIR/testdb_$DATE.sql.gz
# 删除7天前的备份文件
find $BACKUP_DIR -name "testdb_*.sql.gz" -mtime +7 -exec rm {} \;

将脚本保存为/backup/mysql_backup.sh,添加执行权限后,通过crontab -e添加定时任务:

linux备份mysql数据库命令
(图片来源网络,侵删)
0 2 * * * /backup/mysql_backup.sh

备份恢复命令

恢复SQL文件:

mysql -u [用户名] -p[密码] [数据库名] < [备份文件路径].sql

恢复压缩文件:

gunzip < [备份文件路径].sql.gz | mysql -u [用户名] -p[密码] [数据库名]

备份参数说明表

参数说明
-u指定MySQL用户名
-p指定密码(建议交互式输入)
--databases备份多个数据库
--all-databases备份所有数据库
--no-data只导出结构
--no-create-info只导出数据
--single-transaction适用于InnoDB引擎,避免锁表
--master-data=2记录binlog位置,用于主从复制恢复

相关问答FAQs

Q1: 如何确保备份文件的安全性?
A1: 可通过以下方式增强安全性:

  1. 设置文件权限为600(仅所有者可读写):chmod 600 [备份文件]
  2. 加密备份文件:使用gpg加密后存储,如mysqldump ... | gpg -c > backup.sql.gz.gpg
  3. 将备份文件存储到异地服务器或云存储,避免与主服务器同时故障。

Q2: 备份时如何避免锁表影响业务?
A2: 对于InnoDB引擎,可使用--single-transaction参数实现热备份,该参数通过事务快照避免锁表:

mysqldump -u root -p --single-transaction testdb > /backup/testdb.sql

对于MyISAM引擎,需在业务低峰期执行备份,或使用--lock-tables=false(但可能导致数据不一致,需谨慎)。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/442121.html<

(0)
运维的头像运维
上一篇2025-11-03 00:19
下一篇 2025-11-03 00:22

相关推荐

  • MySQL导出SQL文件命令有哪些?

    在MySQL数据库管理中,导出SQL文件是一项常见操作,用于数据备份、迁移或分析,MySQL提供了多种命令行工具来实现这一功能,其中最常用的是mysqldump,以下将详细介绍mysqldump命令的使用方法、参数选项及不同场景下的应用,mysqldump是MySQL官方提供的逻辑备份工具,它可以将数据库结构……

    2025-11-15
    0
  • Linux计划任务命令如何设置与使用?

    Linux计划任务命令是系统管理员和开发者日常工作中不可或缺的工具,它们允许用户在指定的时间自动执行命令、脚本或程序,从而实现自动化运维、定时数据处理、系统维护等功能,在Linux系统中,最常用的计划任务命令主要包括at、crontab以及systemd定时器,每种工具都有其独特的应用场景和使用方法,at命令……

    2025-11-12
    0
  • MySQL如何用命令导出SQL文件?

    MySQL 是一款广泛使用的关系型数据库管理系统,在日常开发和运维中,经常需要将数据库或数据表导出为 SQL 文件,以便数据备份、迁移或共享,通过 MySQL 命令行工具可以高效完成导出操作,本文将详细介绍 MySQL 命令导出 SQL 文件的多种方法、参数配置及实际应用场景,使用 mysqldump 命令导出……

    2025-11-10
    0
  • Linux命令如何导出SQL文件?

    在Linux系统中,使用命令行导出SQL文件是数据库管理和日常运维中的常见操作,无论是数据备份、迁移还是分析,都离不开高效的导出方法,不同的数据库系统(如MySQL、PostgreSQL、MongoDB等)提供了各自的命令行工具,其语法和参数略有差异,但核心逻辑相似,本文将详细介绍主流数据库的SQL文件导出方法……

    2025-11-09
    0
  • gzip解压缩命令怎么用?

    gzip是一种广泛使用的文件压缩工具,它通过LZ77算法和Huffman编码相结合的方式,能够有效减小文件体积,节省存储空间并加快网络传输速度,当需要处理gzip压缩文件时,解压缩操作是必不可少的环节,本文将详细介绍gzip解压缩的方法、工具及注意事项,解压缩的基本方法gzip解压缩的核心是还原被压缩的原始文件……

    2025-11-07
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注