MySQL 备份与恢复

  1. 1. MySQL 备份与恢复
    1. 1.1. 备份部分
    2. 1.2. 恢复部分

Mysql备份与恢复

MySQL 备份与恢复

备份部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 导出全部数据库及表
[root@localhost /] mysqldump --all-databases > /tmp/dump.sql
# 导出部分数据库及表
[root@localhost /] mysqldump --databases db1 db2 db3 > /tmp/dump.sql
# 导出单个数据库可以用如下两种格式
# 区别是使用--databases在导出数据时会加上CREATE DATABASE 或 USE 语句,不使用--databases参数在导入数据时需要先指定一个存在的数据库作为默认数据库导入数据。
[root@localhost /] mysqldump --databases test > /tmp/dump.sql
[root@localhost /] mysqldump test > /tmp/dump.sql
# 导出指定表
[root@localhost /] mysqldump test t1 t3 t5 > /tmp/dump.sql
[root@localhost /] mysqldump --tables test t1 t3 t5 > /tmp/dump.sql
# 导出到文件
SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

恢复部分

如果导出文件时指定了–all-databases 或 –databases选项,备份文件会包含CREATE DATABASE 和 USE语句,我们直接导入即可,无需预先创建库和指定库。以下两种方式均可。

1
[root@localhost /] mysql < /tmp/dump.sql #(方法1:shell命令行操作)
1
mysql> source /tmp/dump.sql              ---(方法2:进入mysql数据库操作)

如果导出文件时未指定了–all-databases 或 –databases选项,备份文件不包含CREATE DATABASE 和 USE语句,导入数据前我们需要预先创建库和指定库。

方法1:shell命令行下操作

1
2
[root@localhost /]# mysqladmin create db1
[root@localhost /]# mysql db1 < /tmp/dump.sql

方法2:进入mysql数据库操作

1
2
3
mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql