使用 MySQL SOURCE 命令恢复数据库
MySQL 提供了 SOURCE 命令帮助你将备份的数据恢复到现有的数据库中。
要将备份的 SQL 文件恢复到 MySQL 数据库服务器中,您可以是用 MySQL SOURCE
语句,或者 mysql
命令。
下面演示了备份和恢复 Sakila 示例数据库的过程。
备份数据库
请使用管理员用户或者具有权限的用户备份 sakila 数据库:
mysqldump --user=root --password=<password> --databases sakila --result-file=/bak/sakila.sql
运行成功后,将会生成文件 /bak/sakila.sql
。
使用 root 用户登录 MySQL 服务器,并使用下面的命令删除 sakila 数据库。
DROP DATABASE sakila;
使用 SOURCE 恢复备份
以下是使用 SOURCE
命令恢复备份的步骤:
-
使用 mysql 客户端工具连接到 MySQL 服务器:
mysql -u root -p
输入
root
帐户的密码并按Enter
:Enter password: ********
-
运行以下
SOURCE
命令恢复 sakila 数据库:SOURCE /bak/sakila.sql
-
使用
SHOW DATABASES
语句查看数据库列表来检查是否已经重新创建数据库:SHOW DATABASES LIKE 'sakila';
+-------------------+ | Database (sakila) | +-------------------+ | sakila | +-------------------+
现在,sakila 数据库已经创建了。
-
使用
SHOW TABLES
语句查看表的列表来检查是否已经重新创建了表:SHOW TABLES FROM 'sakila';
+----------------------------+ | Tables_in_sakila | +----------------------------+ | actor | | actor_copy | | actor_info | | address | | category | | city | | country | | customer | | customer_list | | film | | film_actor | | film_category | | film_list | | film_text | | inventory | | language | | nicer_but_slower_film_list | | payment | | rental | | sales_by_film_category | | sales_by_store | | staff | | staff_list | | store | | student | | student_score | | subscribers | | test | | user | +----------------------------+
现在,sakila 数据库中的表也恢复了。
使用 mysql
命令恢复
SOURCE
命令需要登录后才能运行,而 mysql
本身就支持直接导入数据。请使用如下 mysql
命令恢复数据库:
mysql --user=root --password=<password> < /bak/sakila.sql
运行完成后,您可以使用 SHOW DATABASES
和 SHOW TABLES
验证数据库是否已经恢复。
结论
在 MySQL 中, SOURCE
命令可以帮您将数据库备份文件恢复到数据库中。除此之外,您还可以直接使用 mysql
命令恢复数据库。