MySQL - 备份数据

MySQL - 备份数据 首页 / MySQL入门教程 / MySQL - 备份数据

将表数据导出到文本文件中的最简单方法是使用 SELECT ... INTO OUTFILE 语句,该语句将查询输出直接导出到服务器主机上的文件中。

SELECT ... INTO OUTFILE

该语句的语法在最后将常规 SELECT 命令与 INTO OUTFILE文件名结合在一起,默认输出格式与LOAD DATA命令相同,因此,以下语句将 tutorials_tbl 表作为制表符分隔的,以换行符结尾的文件导出到 /tmp/tutorials.txt 中。

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

您可以使用各种选项来更改输出格式,以指示如何对列和记录进行引用和定界,要以带有CRLF终止行的CSV格式导出tutorial_tbl表,请使用以下代码。

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

导出原始数据

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

要将表转储为数据文件,必须指定-tab  选项,该选项指示目录,您希望MySQL服务器在该目录中写入文件。

如,要将 tutorials_tbl 表从 TUTORIALS 数据库转储到/tmp 目录中的文件,请使用如下所示的命令。

$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 = MyISAM;

--
-- 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 ******

--all-databasesoptions在MySQL 3.23.12版本中可用。此方法可用于实现数据库备份策略。

复制到另一台主机

如果要将表或数据库从一台MySQL服务器复制到另一台,请使用 mysqldump 和数据库名和表名。

在源主机上运行以下命令。这会将完整的数据库转储到 dump.txt 文件中。

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-database-export.html

来源:LearnFk无涯教程网

$mysqldump -u root -p database_name table_name > dump.txt
password *****

您可以在不使用特定表名的情况下复制完整的数据库,如上所述。

现在,在另一台主机上使用ftp dump.txt文件,并使用以下命令。在运行此命令之前,请确保已在目标服务器上创建了database_name。

$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中,命令的一半连接到本地服务器,并将转储输出写入管道,该命令的其余一半连接到other-host.com上的远程MySQL服务器,它读取输入管道,并将每个语句发送到other-host.com服务器。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Python -〔尹会生〕

编辑训练营 -〔总编室〕

TypeScript开发实战 -〔梁宵〕

分布式系统案例课 -〔杨波〕

OAuth 2.0实战课 -〔王新栋〕

张汉东的Rust实战课 -〔张汉东〕

Spring编程常见错误50例 -〔傅健〕

快速上手C++数据结构与算法 -〔王健伟〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)