开发学院

您的位置:首页>教程>正文

教程正文

MySQL数据库导入-恢复方法

MySQL数据库导入-恢复方法

  在MySQL中有两种简单的方法可以从以前备份的文件恢复到MySQL数据库。

使用LOAD DATA导入数据:

  MySQL提供了一个LOAD DATA语句,用作批量恢复数据。以下示例,它从您当前目录中读取文件dump.txt ,并将其加载到当前数据库中的表mytbl中:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

  MySQL从指定位置读取文件,如果LOCAL关键字不存在,MySQL将使用绝对路径名来查找主机上的数据文件指定文件的位置,从文件系统的根目录开始。

  默认情况下,LOAD DATA假定数据文件的命令由linefeeds(换行)终止,并且每行的数据值由tab符号分隔。

  要显式指定文件格式,请使用字段子句来描述行中字段的特征,并使用行子句来指定行结束序列。以下负载数据语句指定数据文件包含以冒号和换行符分隔的值(以回车符和换行符) :

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '\r\n';

  LOAD DATA假定数据文件中的列与表中的列具有相同的顺序。如果不是,您可以指定一个列表来指示应该将数据文件列加载到哪个表列。假设您的表具有a、b和c列,但数据文件中的连续列与b、c和a对应,可以加载如下文件:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE mytbl (b, c, a);

使用mysqlimport导入数据

  MySQL还包括一个名为mysqlimport的实用程序,以便您可以直接从命令行加载输入文件。

  要将dump.txt中的数据加载到mytbl中,请在UNIX提示符下使用以下命令。

$ mysqlimport -u root -p --local database_name dump.txt
password *****

  如果使用mysqlimport,则命令行选项提供格式说明符。与前两个加载数据语句对应的mysqlimport命令如下所示:

$ mysqlimport -u root -p --local --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  database_name dump.txt
password *****

  您指定选项的顺序无关紧要。

  mysqlimport语句使用-专栏选项指定列顺序:

$ mysqlimport -u root -p --local --columns=b,c,a \
    database_name dump.txt
password *****

处理特殊字符

  字段子句除了TERMINATED BY,还可以指定其他格式选项。默认情况下,LOAD DATA 假定值为非挂牌,并将反斜杠( \)解释为特殊字符的转义符。要显式地指示引用字符的值,请使用;MySQL将从输入处理期间的数据值的末尾剥去该字符。要更改默认转义符,请使用ESCAPED BY。

  当您指定ENCLOSED BY以指示引用字符应从数据值中删除时,可以将报价字符包括在数据值中,并将其翻倍,或者在数据值之前加上转义符。例如,如果引号和转义字符是" and \,,输入值是"a""b\"c",那么它将被解释为a"b"c