MySQL数据库的数据备份与恢复主要有3种方法,前两种都是MySQL dump命令,第三种则是用Navicat工具直接备份。相比而言,第三种方法更加简单!
1 方法一(MySQL dump命令)
1.1 登录MySQL
[root@hurys22 ~]# mysql -uroot -phurys@123
1.2 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.01 sec)
1.3 使用test数据库
mysql> use test;
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
1.4 查看test库中的表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student |
+----------------+
1 row in set (0.00 sec)
1.5 查看student表数据
mysql> select * from student;
+----+--------------+--------+
| id | name | gender |
+----+--------------+--------+
| 1 | 楚武王 | 男 |
| 2 | 桃花夫人 | 女 |
| 3 | 楚文王 | 男 |
| 4 | 夏姬 | 女 |
| 5 | 楚成王 | 男 |
| 6 | 南子 | 女 |
| 7 | 楚庄王 | 男 |
| 8 | 文嬴 | 女 |
+----+--------------+--------+
8 rows in set (0.00 sec)
1.6 退出MySQL
mysql> exit
Bye
1.7 先在Linux中创建空文件
[root@hurys22 ~]# vi /opt/mysql/test.sql
1.8 备份MySQL的test数据库
[root@hurys22 ~]# mysqldump -uroot -phurys@123 test > /opt/mysql/test.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
1.9 查看备份文件是否有数据
1.10 再次登录MySQL
[root@hurys22 ~]# mysql -uroot -phurys@123
1.11 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
1.12 删除之前的数据库test
mysql> drop database test;
Query OK, 1 row affected (0.05 sec)
1.13 创建新的数据库 newtest
mysql> create database newtest;
Query OK, 1 row affected (0.00 sec)
1.14 查看数据库确认
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| newtest |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
1.15 使用newtest数据库
mysql> use newtest;
Database changed
1.16 查看newtest库中的表(空库,没表)
mysql> show tables;
Empty set (0.00 sec)
1.17 source文件test.sql,恢复数据
mysql> source /opt/mysql/test.sql
Query OK, 0 rows affected (0.00 sec)
1.18 查看新库newtest的表
mysql> show tables;
+-------------------+
| Tables_in_newtest |
+-------------------+
| student |
+-------------------+
1 row in set (0.00 sec)
1.19 查看student表数据,确认是否和之前一样
mysql> select * from student;
+----+--------------+--------+
| id | name | gender |
+----+--------------+--------+
| 1 | 楚武王 | 男 |
| 2 | 桃花夫人 | 女 |
| 3 | 楚文王 | 男 |
| 4 | 夏姬 | 女 |
| 5 | 楚成王 | 男 |
| 6 | 南子 | 女 |
| 7 | 楚庄王 | 男 |
| 8 | 文嬴 | 女 |
+----+--------------+--------+
8 rows in set (0.00 sec)
2 方法二(MySQLdump命令)
2.1 先在Linux中创建空文件
[root@hurys22 ~]# vi /opt/mysql/newtest.sql
2.2 备份MySQL的newtest数据库(--lock-all-tables)
[root@hurys22 ~]# mysqldump -uroot -phurys@123 --lock-all-tables newtest > /opt/mysql/newtest.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
2.3 查看备份文件是否有数据
2.4 登录MySQL数据库
[root@hurys22 ~]# mysql -uroot -phurys@123
2.5 创建新的数据库 test
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
2.6 查看数据库确认
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| newtest |
| performance_schema |
| sys |
| test |
+--------------------+
7 rows in set (0.00 sec)
2.7 使用新的数据库test
mysql> use test;
Database changed
2.8 查看新库test中的表(空库,没表)
mysql> show tables;
Empty set (0.00 sec)
2.9 退出MySQL
mysql> quit
Bye
2.10 恢复数据到新数据库test
[root@hurys22 ~]# mysql -uroot -phurys@123 test < /opt/mysql/newtest.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
2.11 再次登录MySQL
[root@hurys22 ~]# mysql -uroot -phurys@123
2.12 使用新数据库test
mysql> use test;
2.13 查看新库test的表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student |
+----------------+
1 row in set (0.00 sec)
2.14 查看student表数据,确认是否和之前一样
mysql> select * from student;
+----+--------------+--------+
| id | name | gender |
+----+--------------+--------+
| 1 | 楚武王 | 男 |
| 2 | 桃花夫人 | 女 |
| 3 | 楚文王 | 男 |
| 4 | 夏姬 | 女 |
| 5 | 楚成王 | 男 |
| 6 | 南子 | 女 |
| 7 | 楚庄王 | 男 |
| 8 | 文嬴 | 女 |
+----+--------------+--------+
8 rows in set (0.00 sec)
- 方法三(使用Navicat文件备份)
第一步,打开Navicat对应数据库——右击目标数据库newtest——选择转储SQL文件——选择结构和数据——选择文件储存的位置和名称
然后,点击开始,自动生成转储文件
第二步,为了看的更清楚,首先删除了数据库newtest中的student表
然后,右击数据库newtest——选择运行SQL文件——选择该SQL文件的位置
接着,点击开始。运行结果截图
最后,重新打开newtest数据库验证一下student表