如何从所有数据库的mysqldump中还原一个数据库
时间:2020-07-27 12:59:07 来源:igfitidea点击:
在本教程中,我们将学习如何从包含多个数据库的MySQL备份文件中还原单个MySQL数据库。
如果使用--all-databases选项备份mysql/mariadb服务器中的所有数据库,何时何时备份何时备份何种数据库,现在要从所有数据库备份文件还原一个数据库?
在还原数据库时,最简单的方法是使用mysql命令的-o或者-one-data database选项。
mysql -p -o database_name < all_databases.sql
Database_Name是我们要还原的数据库,All_databases.sql是包含所有数据库或者多个数据库的MySQL备份文件。
示例:使用mysql --one-database还原一个数据库
例如,假设我们使用mysqldump命令备份MySQL/MariaDB服务器中的所有数据库。
mysqldump -p --all-databases > all_databases.sql
现在,我们要从转储文件中还原一个名为DB1的数据库。
mysql -p --one-database db1 < all_databases.sql
上面的命令将从ALL_DATABASES.SQL文件恢复数据库DB1.
使用sed命令提取一个数据库
另一个选项是使用SED命令从MySQLDUMP文件中提取要还原的数据库,然后使用MySQL命令还原数据库。
sed -n '/^-- Current Database: `db_name`/,/^-- Current Database: `/p' all_databases.sql > db.sql
db_name是要提取的数据库的名称,all_databases.sql是包含所有数据库和db.sql的mysql备份文件是输出文件。
例子
在以下示例中,我将使用sed命令从大mysql转储文件中提取名为'database1'的数据库。
sed -n '/^-- Current Database: `database1`/,/^-- Current Database: `/p' all_databases.sql > database1.sql
这将从ALL_DATABASES.SQL转储中提取数据库1并将其输出到Database1.sql文件。
然后,我可以使用mysql命令恢复database1.
mysql -p database1 < database1.sql
将使用Database1.SQL备份文件还原数据库database1。