MySQL数据库备份

本文主要介绍MySQL数据库备份的方法。

mysqldump备份方法

mysqldump备份提供三种级别的备份:表级,库级和全库级。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
建立一个存放备份的目录
shell> mkdir /tmp/mysqlbackup
改权限
shell> mysql.mysql /tmp/mysqlbackup/

shell> man mysqldump
shell> mysqldump [options] db_name [tables] # 表级
shell> mysqldump [options] --database DB1 [DB2 DB3...] # 库级
shell> mysqldump [options] --all-databases # 全库级

全库备份:
shell> mysqldump -uroot -p123456 --all-databases > /tmp/mysqlbackup/all.sql
全库还原:
shell> mysql_install_db --datadir=/data --user=mysql # 可能需要重新初始化,具体的要看情况
shell> mysql -u root -p < /tmp/mysqlbackup/all.sql

库级备份:
shell> mysqldump -uroot -p123456 --database db1 > /tmp/mysqlbackup/db1.sql
库级还原:
shell> mysql -u root -p < /tmp/mysqlbackup/db1.sql

表级备份:
shell> mysqldump -uroot -p123456 db1 emp > /tmp/mysqlbackup/emp.sql
表级还原:
shell> mysql -uroot -p123456 db1 < /tmp/mysqlbackup/emp.sql

只备份表结构:
shell> mysqldump -uroot -p123456 --no-data db1 emp> /tmp/mysqlbackup/emp.sql

某些表不备份
shell> mysqldump -uroot -p123456 --ignore-table=db1.emp1 --ignore-table=db1.emp2 db1 emp> /tmp/mysqlbackup/emp.sql

跨主机备份:
shell> mysqldump -uroot -p123456 --opt --database db1 | mysql -h 192.168.0.214 -uroot -p123456 -C db1
# 远程数据库上要存在db1这个库才能备份过去,否则会报错。

---------------- The End ----------------