MariaDB - 数据加载方法



本章将学习各种数据库备份加载方法。从备份恢复数据库是一个简单但有时非常耗时的过程。

数据加载有三种方法:LOAD DATA 语句、mysqlimport 和简单的 mysqldump 恢复。

使用 LOAD DATA

LOAD DATA 语句用作批量加载器。查看一个加载文本文件的示例:

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl;

注意 LOAD DATA 语句的以下特性:

  • 使用 LOCAL 关键字可以防止 MariaDB 对主机进行深度搜索,并使用非常具体的路径。

  • 该语句假设格式由换行符(换行)终止的行和由制表符分隔的数据值组成。

  • 使用 FIELDS 子句显式指定一行上字段的格式。使用 LINES 子句指定行尾。请查看下面的示例。

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl
   FIELDS TERMINATED BY '|'
   LINES TERMINATED BY '\n';
  • 该语句假设数据文件中的列使用与表相同的顺序。如果需要设置不同的顺序,可以按如下方式加载文件:

mysql> LOAD DATA LOCAL INFILE 'products_copy.txt' INTO TABLE empty_tbl (c, b, a);

使用 MYSQLIMPORT

mysqlimport 工具充当 LOAD DATA 包装器,允许从命令行执行相同的操作。

加载数据如下:

$ mysqlimport -u root -p --local database_name source_file.txt

指定格式如下:

$ mysqlimport -u root -p --local --fields-terminated-by="|" \
   --lines-terminated-by="\n" database_name source_file.txt

使用 --columns 选项指定列顺序:

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

使用 MYSQLDUMP

使用 mysqldump 恢复需要此简单的语句才能将转储文件加载回主机:

shell> mysql database_name < source_file.sql

特殊字符和引号

在 LOAD DATA 语句中,引号和特殊字符可能无法正确解释。该语句假设未加引号的值并将反斜杠视为转义字符。使用 FIELDS 子句指定格式。使用“ENCLOSED BY”指向引号,这会导致从数据值中去除引号。使用“ESCAPED BY”更改转义字符。

广告