Mysql数据库的备份和恢复
1.备份单个数据库
mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下:
语法:mysqldump –u <用户名> -p <数据库名>备份的文件名
单个数据库备份例子:
MariaDB [oldboy]> select database();
+------------+
| database() |
+------------+
| oldboy |
+------------+
1 row in set (0.00 sec)
MariaDB [oldboy]> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| test |
+------------------+
1 row in set (0.00 sec)
备份单个库:oldboy库
mysqldump -uroot -p123456 -B oldboy > oldboy0531_B.sql
注意:加上-B后,备份的时候,会有创建数据库并use库的过程。
删除数据库中备份过的库oldboy,然后将备份的数据重新导入数据库:
删除前的oldboy库:
MariaDB [(none)]> use oldboy;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [oldboy]> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| test |
+------------------+
1 row in set (0.00 sec)
MariaDB [oldboy]> select * from test;
+----+-----+-------------+
| id | age | name |
+----+-----+-------------+
| 1 | 16 | li xiao hai |
| 2 | 20 | li lei |
| 3 | 22 | da yu er |
| 4 | 26 | li p |
+----+-----+-------------+
开始删除oldboy库:
MariaDB [oldboy]> drop database oldboy;
Query OK, 1 row affected (0.09 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| test2_utf8 |
+--------------------+
5 rows in set (0.00 sec)
上述可知:oldboy库删除成功!接下来开始恢复删除前的备份:
开始恢复oldboy库:
[root@localhost tmp]# mysql -uroot -p123456 </tmp/oldboy0531_B.sql
开始查看是否恢复oldboy库:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboy |
| performance_schema |
| test |
| test2_utf8 |
+--------------------+
6 rows in set (0.00 sec)
MariaDB [(none)]> use oldboy ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [oldboy]> select * from test;
+----+-----+-------------+
| id | age | name |
+----+-----+-------------+
| 1 | 16 | li xiao hai |
| 2 | 20 | li lei |
| 3 | 22 | da yu er |
| 4 | 26 | li p |
+----+-----+-------------+
4 rows in set (0.00 sec)
上述可知:恢复oldboy库成功!
1.1利用mysqldump命令对指定的库进行压缩备份
[root@localhost tmp]# mysqldump -uroot -p123456 -B oldboy|gzip > oldboy0531_B_B.sql.gz
[root@localhost tmp]# ls -l oldboy0531_B_B.sql.gz
-rw-r--r-- 1 root root 807 May 16 23:25 oldboy0531_B_B.sql.gz
1.2利用mysqldump命令备份多个库(-B参数后可以指定多个库)
具体事例参看1.1