本章我们将从 MySQL 数据库导出数据并将数据导入回来。
简单的数据导出
在第一个示例中,我们将数据保存在文本文件中。
我们从Cars
表中选择所有行(8)到/tmp
目录中的 cars 文件中。 我们需要具有写入该目录的权限。
我们显示文件的内容。
在第一条语句中,我们删除表中的所有行。 在第二条语句中,我们将所有数据从文本文件加载到 Cars 表中。
在上面的 SQL 语句中,我们将 Cars 表中的所有数据转储到 cars.csv 文件中。 FIELDS TERMINATED BY
子句控制在文本文件中如何终止数据。 我们选择了一个逗号字符。 CSV 代表逗号分隔值,它是一种非常常见且可移植的文件格式。 它可以由许多其他应用(如 OpenOffice,其他数据库等)导入。
这是 cars.csv 文件的内容。
我们删除所有数据,然后从cars.csv
文件中将其还原。
导出到 XML 文件
可以使用mysql
监视器导出和导入 XML 数据。
mysql
监视器具有--xml
选项,使我们能够以 XML 格式转储数据。 -e
选项执行一条语句并退出监视器。
这是mysql
监视器生成的 XML 文件。
我们截断 Cars 表。 我们从 XML 文件加载数据。 请注意,LOAD XML
语句可用于 MySQL 5.5 及更高版本。
使用 mysqldump 工具
mysqldump
是用于为 MySQL 创建备份的命令工具。 当我们将数据从一个地方传输到另一个地方时,会使用转储一词。 从数据库文件到文本文件。 从内存到文件。 和类似。
转储表结构
上面的命令将mydb
数据库中所有表的表结构转储到bkq1.sql
文件中。 --no-data
选项导致不保存数据,仅保存表结构。
在这里,我们看到了bkp1.sql
文件的一部分。 这是用于创建Cars
表的 SQL。
仅转储数据
此命令转储mydb
数据库的所有表中的所有数据。 它省略了表结构。 表结构的遗漏是由--no-create-info
选项引起的。
在这里,我们可以看到Cars
表的数据。
转储整个数据库
此命令将所有表从mydb
数据库转储到bkp3.sql
文件。
恢复数据
我们展示了如何从备份 SQL 文件还原数据库。
我们删除mydb
数据库。 显示错误。 表已删除,但数据库未删除。
原因是(在我的情况下)在进行备份时,一些数据写入了mydb
目录,MySQL 在其中存储了mydb
数据库。 这两个外来文件无法删除,因此出现上述错误。 通过删除文件,错误已得到解决。
mydb 数据库已完全删除。
我们创建mydb
数据库。 更改为数据库。 并使用 source 命令执行bkp3.sql
脚本。 重新创建数据库。
数据已验证。