用SELECT... INTO OUTFILE语句导出MySQL数据的教程 |
本文标签:MySQL,导出 表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上 。 这句话的语法结合了常规的SELECT INTO OUTFILE文件名的末尾 。默认的输出格式是相同的LOAD DATA,所以下面的语句导出tutorials_tbl的表制表符分隔的,换行结尾的文件到/tmp/tutorials.txt: mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE /tmp/tutorials.txt; 也可以更改输出格式,使用选项来指示如何引用和分隔列和记录 。 CRLF终止线要导出tutorial_tbl的CSV格式的表格,使用这样的语句: mysql> SELECT * FROM passwd INTO OUTFILE /tmp/tutorials.txt -> FIELDS TERMINATED BY , ENCLOSED BY " -> LINES TERMINATED BY \r\n; SELECT ... INTO OUTFILE具有以下属性:
作为原始数据的导出表: 使用mysqldump程序复制或备份表和数据库 。它可以写表输出的原始数据文件或为一组的INSERT语句重新创建该表中的记录 。
$ mysqldump -u root -p --no-create-info --tab=/tmp TUTORIALS tutorials_tbl password ****** 在SQL格式导出表的内容或定义: 一个表中的SQL格式导出到一个文件,使用这样的命令: $ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt password ****** 这将创建文件的内容如下: -- MySQL dump 8.23 -- -- Host: localhost Database: TUTORIALS --------------------------------------------------------- -- Server version 3.23.58 -- -- Table structure for table `tutorials_tbl` -- CREATE TABLE tutorials_tbl ( tutorial_id int(11) NOT NULL auto_increment, tutorial_title varchar(100) NOT NULL default , tutorial_author varchar(40) NOT NULL default , submission_date date default NULL, PRIMARY KEY (tutorial_id), UNIQUE KEY AUTHOR_INDEX (tutorial_author) ) TYPE=InnoDB; -- -- Dumping data for table `tutorials_tbl` -- INSERT INTO tutorials_tbl VALUES (1,Learn PHP,John Poul,2007-05-24); INSERT INTO tutorials_tbl VALUES (2,Learn MySQL,Abdul S,2007-05-24); INSERT INTO tutorials_tbl VALUES (3,JAVA Tutorial,Sanjay,2007-05-06); 要转储多个表,他们的名字所有的数据库名称参数 。要转储整个数据库,不指定任何表后的数据库,如下所示: $ mysqldump -u root -p TUTORIALS > database_dump.txt password ****** 所有可用的数据库备份主机上使用以下命令: $ mysqldump -u root -p --all-databases > database_dump.txt password ****** 在SQL格式导出表的内容或定义: 这些方法可用于实现数据库的备份策略 。 如果要复制的表或数据库从一个MySQL服务器,然后使用mysqldump数据库名和表名 。 在源主机上运行以下命令 。这将转储完整的数据库到dump.txt文件: $ mysqldump -u root -p database_name table_name > dump.txt password ***** 复制完整的数据库,而不使用一个特定的表名称,如上面所解释 。 现在,FTP dump.txt文件在另一台主机上,使用下面的命令 。在运行此命令之前,请确保已创建目标服务器上的数据库名称 。 $ mysql -u root -p database_name < dump.txt password ***** 另一种方法,而无需使用一个中间文件来完成,mysqldump输出直接通过网络发送到远程的MySQL服务器 。如果可以连接到两台服务器的cookbook 数据库所在的主机上,使用以下命令: $ mysqldump -u root -p database_name states | mysql -h other-host.com database_name 命令mysqldump的一半连接到本地服务器,并写入转储输出管道 。 MySQL的一半的命令连接到远程MySQL服务器otherhost.com 。它读取输入管和其他host.com服务器发送的每个语句 。
|