有两个简单的方法MySQL中的数据加载到MySQL数据库从先前备份的文件。
LOAD DATA导入数据:
MySQL提供了LOAD DATA语句,作为一个大容量数据加载。下面是一个例子声明中,读取一个文件dump.txt,,从当前目录加载到当前数据库中的表mytbl:
1
|
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl; |
- 如果本地的关键字是不存在的,MySQL的外观使用绝对路径名寻找到完全指定位置的文件在服务器主机上的数据文件,从文件系统根目录开始。MySQL从给定的位置的读取文件。
- 默认情况下,LOAD DATA假设数据文件包含多行终止换行(换行)和行内的数据值由制表符分隔。
- 要明确指定文件格式,使用一个FIELDS子句来形容领域的行内,一个LINES子句指定的行结束符序列。下面的LOAD DATA语句指定的数据文件包含由冒号分隔的值和行结束的回车和换行字符:
1
2
3
|
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可以加载该文件是这样的:
1
2
|
mysql> LOAD DATA LOCAL INFILE 'dump.txt' -> INTO TABLE mytbl (b, c, a); |
导入数据mysqlimport
MySQL还包括一个命名的mysqlimport实用程序,作为LOAD DATA包直接在命令行中输入文件加载。
要加载数据从dump.txt到mytbl使用,在UNIX提示符下面的命令。
1
2
|
$ mysqlimport -u root -p -- local database_name dump.txt password ***** |
如果使用mysqlimport命令行选项提供的格式说明符。mysqlimport命令对应于前面的两个LOAD DATA语句看起来像这样:
1
2
3
|
$ mysqlimport -u root -p -- local --fields-terminated-by= ":" \ --lines-terminated-by= "\r\n" database_name dump.txt password ***** |
mysqlimport 指定的选项的顺序并不重要,但他们都应该先于数据库的名称。
mysqlimport 语句使用 - 列选项来指定列的顺序:
1
2
3
|
$ mysqlimport -u root -p -- local --columns=b,c,a \ database_name dump.txt password ***** |
处理引号和特殊字符:
FIELDS子句可以指定其他格式的选择,除了TERMINATED BY。默认情况下,LOAD DATA假设值加引号,并解释反斜杠(\)作为转义字符的特殊字符。要指示值显式地引用字符,使用封闭;,MySQL将两端的数据值中删除该字符的输入处理过程中。要更改默认的转义字符,请使用来转义。
对于mysqlimport引号和转义值,用于指定相应的命令行选项 - 封闭的领域 - 领域转义