mysqldump
命令导出MySQL数据库备份,`mysqldump -u [username] -p[password] [database_name] > [backupLinux系统中,导出数据库备份是确保数据安全、便于迁移或恢复的重要操作,以下是几种常见的数据库备份导出方法及详细步骤:
MySQL数据库备份
使用mysqldump
工具
(1)基本语法
mysqldump -u [用户名] -p[密码] [数据库名] > [备份文件.sql]
示例:导出名为example_db
的数据库,用户名为root
,密码为password123
:
mysqldump -u root -ppassword123 example_db > example_db.sql
(2)常用选项
| 选项 | 说明 |
|————————|———————————————————————-|
| --databases
| 导出多个数据库,如--databases db1 db2
|
| --all-databases
| 导出所有数据库 |
| -t
或 --no-create-info
| 仅导出数据,不包含表结构 |
| --no-data
| 仅导出数据库结构,不包含数据 |
| -h
或 --host
| 指定数据库主机(非本地) |
| -P
或 --port
| 指定数据库端口(默认3306) |
(3)压缩备份文件
mysqldump -u root -p example_db | gzip > example_db.sql.gz
自动化脚本备份
示例脚本:
#!/bin/bash DB_USER="root" DB_PASS="password123" DB_NAME="example_db" BACKUP_DIR="/var/backups/mysql" DATE=$(date +%Y%m%d%H%M%S) DUMP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql" mkdir -p ${BACKUP_DIR} mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${DUMP_FILE} if [ $? -eq 0 ]; then echo "备份成功:${DUMP_FILE}" else echo "备份失败" fi
设置定时任务(每天凌晨2点执行):
crontab -e # 添加以下行 0 2 /path/to/script.sh
图形化工具(如phpMyAdmin
)
- 登录
phpMyAdmin
。 - 选择数据库,点击“导出”。
- 选择“SQL”格式并执行导出。
PostgreSQL数据库备份
使用pg_dump
工具
(1)基本语法
pg_dump -U [用户名] [数据库名] > [备份文件.sql]
示例:导出名为mydatabase
的数据库:
pg_dump -U postgres mydatabase > mydatabase.sql
(2)常用选项
| 选项 | 说明 |
|—————|———————————————————————-|
| -t
| 仅导出指定表,如-t users
|
| -s
或 --schema-only
| 仅导出数据库结构 |
| -h
或 --host
| 指定数据库主机(非本地) |
| -p
或 --port
| 指定数据库端口(默认5432) |
压缩备份文件
pg_dump -U postgres mydatabase | gzip > mydatabase.sql.gz
MongoDB数据库备份
使用mongodump
工具
基本语法:
mongodump --db [数据库名] --out [备份目录]
示例:导出example_db
到/var/backups/mongo
:
mongodump --db example_db --out /var/backups/mongo
常用选项:
| 选项 | 说明 |
|———————–|———————————————————————-|
| --collection
| 仅导出指定集合,如--collection users
|
| --query
| 按条件导出数据,如--query '{"status":"active"}'
|
| --gzip
| 压缩备份文件 |
通用SQL文件导出(适用于大多数数据库)
- 导出MySQL:
mysqldump -u root -p example_db > example_db.sql
- 导出PostgreSQL:
pg_dump -U postgres example_db > example_db.sql
注意事项
- 权限要求:执行备份的用户需具备数据库读取权限。
- 路径安全性:确保备份文件保存路径可写,建议使用绝对路径。
- 密码安全:避免在命令中明文写入密码,可省略
-p
后直接输入密码。 - 定期测试恢复:验证备份文件是否可用,如使用
zcat backup.sql.gz | less
。
FAQs
如何在Linux中导出特定表的结构和数据?
答:使用mysqldump
的--tables
参数,导出example_db
中的users
表:
mysqldump -u root -p --tables example_db users > users_table.sql
对于PostgreSQL,使用-t
参数:
pg_dump -U postgres -t users example_db > users_table.sql
如何实现MySQL的增量备份?
答:MySQL本身不支持直接增量备份,但可通过二进制日志(binlog)实现:
- 启用二进制日志:在
/etc/my.cnf
中添加log-bin=mysql-bin
,重启MySQL服务。 - 全量备份后记录当前binlog位置:
mysqlbinlog --read-from-remote-server mysql-bin.index | tail -n 1
- 定期导出增量日志:
mysqlbinlog --start-position [POS] mysql-bin. >
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/49836.html