mysql数据库教程-MySQL数据库导出(备份方法)

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

导出表数据到一个文本文件的最简单方法是使用SELECT… INTO OUTFILE语句直接将导出查询结果导出到服务器主机上的文件。

使用SELECT… INTO OUTFILE语句导出数据

语句的语法结合了常规的SELECT INTO与OUTFILE filename 末尾。默认的输出格式与LOAD DATA是一样的,所以下面的语句导出 tutorials_tbl 表到C:/tutorials.txt 并使用制表符分隔,换行结尾的文件:

 mysql> SELECT * FROM tutorials_tbl      -> INTO OUTFILE 'C:/tutorials.txt';

可以利用选项来说明如何引号和分隔列,更改记录输出格式。 使用CRLF为结束行导出tutorial_tbl 为CSV格式表格,使用以下语句:

 mysql> SELECT * FROM passwd INTO OUTFILE 'C:/tutorials.txt'     -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'     -> LINES TERMINATED BY '/r/n';

SELECT… INTO OUTFILE具有以下属性:

  • 输出的文件是直接由MySQL服务器创建的,因此,文件名应指明想要的文件名,它会被写到服务器主机上。还有就是语句类似于没有LOCAL版本的LOAD DATA的本地版本。

  • 必须有MySQL的FILE权限来执行SELECT … INTO语句。

  • 输出文件必须还不存在。 这防止MySQL弄错文件很重要。

  • 应该有服务器主机或某种方式来检索该主机上登录帐户的文件。否则,SELECT … INTO OUTFILE可能没有任何值给出。

  • 在UNIX下,文件创建所有人都是可读的,由MySQL服务器所拥有。这意味着,虽然能够读取该文件,可能无法将其删除。

导出表作为原始数据

mysqldump程序用于复制或备份表和数据库。它可以写入表输出作为一个原始数据文件,或为一组重新创建表中的INSERT语句的记录。

转储一个表作为一个数据文件,必须指定一个–tab 选项指定目录,让MySQL服务器写入文件。

例如,从数据库test中的tutorials_tbl表转储到一个文件在C:/tmp目录,可使用这样的命令:

 $ mysqldump -u root -p --no-create-info /             --tab=c:/tmp TEST tutorials_tbl password ******

以SQL格式导出表内容或定义

以SQL格式的表导出到一个文件,使用这样的命令:

 $ mysqldump -u root -p test tutorials_tbl > dump.txt password ******

这将创建一个具有以下内容折文件,如下:


 -- MySQL dump 8.53 -- -- Host: localhost    Database: test --------------------------------------------------------- -- Server version       5.5.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=MyISAM;  -- -- Dumping data for table `tutorials_tbl` --  INSERT INTO tutorials_tbl         VALUES (1,'Learn PHP','John Poul','2012-01-04'); INSERT INTO tutorials_tbl         VALUES (2,'Learn MySQL','Abdul S','2015-05-14'); INSERT INTO tutorials_tbl         VALUES (3,'JAVA Tutorial','Sanjay','2014-05-10');

要转储多个表,所有数据库名称参数后跟它们的名字。要转储整个数据库,不需要在数据库之后命名(附加)任何表:

 $ mysqldump -u root -p test > database_dump.txt password ******

要备份所有可用的数据库在主机上,使用以下命令:

 $ mysqldump -u root -p --all-databases > database_dump.txt password ******

–all-databases选项可在MySQL 3.23.12之后的版本使用。

该方法可用于实现数据库的备份策略。

复制表或数据库到另一台主机

如果想从一个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服务器。如果可以从源数据库所在的主机那里连接两个服务器,使用此命令(请确保两个服务器可以访问):

 $ mysqldump -u root -p database_name /        | mysql -h other-host.com database_name

命令 mysqldump 的一半连接到本地服务器,并转储输出写入管道。另一半MySQL连接到 other-host.com 远程MySQL服务器。它读取管道输入并发送每条语句到other-host.com服务器。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mysql数据库教程/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/04/18/mysql数据库教程-mysql数据库导出(备份方法)/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注