mysqldump命令进出口数据库的方法和实例总结

mysqldump命令的使用

1。导出所有库

系统命令行

就uusername -文件-所有数据库> all.sql



2。导入所有库

MySQL命令行

MySQL的源all.sql >;



三.出口一些图书馆

系统命令行

就uusername -文件-数据库DB1 DB2 > db1db2.sql



4。进口一些图书馆

MySQL命令行

MySQL的源db1db2.sql >;



5。导入库

系统命令行

MySQL uusername -文件<< db1.sql DB1;

或MySQL命令行

MySQL的源db1.sql >;



6。导出一些数据表

系统命令行

就uusername DB1 Table1表> tb1tb2.sql -文件



7。导入一些数据表

系统命令行

MySQL uusername -文件<< tb1tb2.sql DB1

或MySQL命令行

MySQL >

用户db1;

源tb1tb2.sql;

8,mysqldump字符集设置

就uusername -文件-默认字符集= GB2312 DB1表> tb1.sql

mysqldump客户可用于转储数据库或数据库备份或收集的数据传送到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含SQL语句创建表和/或负荷表。

如果你对服务器和表的备份都是MyISAM表mysqlhotcopy,您应该考虑使用因为你可以备份和恢复更快。

有3种方法来调用mysqldump:

壳> mysqldump {选项} db_name {表}

壳> mysqldump {选项} ---数据库DB1 DB2 DB3 {…}

壳> mysqldump {选项}————数据库

如果没有指定表或使用数据库或全部数据库选项,则整个数据库将被倾倒。

得到你就支持版本的选项,执行mysqldump ---帮助。

如果就没有快速或选择选项,就将整个结果到内存转储结果之前,如果你把一个大的数据库,你可能有问题。默认是启用的,但可以选择禁用,跳过。

如果你使用mysqldump程序生成转储和恢复到一个很老的版本的MySQL服务器的最新版本——选择或E选项不应使用。

mysqldump支持以下选项:

-帮助,-

显示帮助信息并退出。

——添加数据库

在每次创建数据库语句之前添加下拉数据库语句。

——添加下拉表

在每次创建表语句之前添加下拉表语句。

——加锁

每个表转储引用锁表和解锁表语句。重载转储文件插入速度更快。

--全部--数据库

将所有表转储到所有数据库中,与使用数据库选项相同,将命令行中的所有数据库命名为。

——让关键词

允许创建关键字列名称。在每个列名之前添加表名前缀。

---评论{ = { 0,1 } } |

如果设置为0,在转储文件的其他信息,如程序版本,服务器版本,和主机,是禁止的。结果--跳的评论,评论= 0.the ---默认值是1,其中包括额外的信息。

——紧凑

生成少量的输出。此选项禁用注释并启用跳过添加表,没有设置名称,跳过禁用键,并且跳过添加锁定选项以启用。

-兼容=名称

生产与其他数据库系统或旧的MySQL服务器,更兼容的输出。值可以是ANSI,mysql323,mysql40,PostgreSQL,Oracle,MSSQL、DB2、MaxDB,no_key_options,no_tables_options,或no_field_options.to使用一些值,用逗号分开。这些值具有相同的含义,如设置服务器的SQL模式相应的选项。

此选项不能保证与其他服务器的兼容性。它只允许当前能够使转储输出更兼容的SQL模式值。例如,Oracle不映射Oracle类型或使用Oracle注释语法的数据类型。

-完全插入

使用包含列名称的完整INSERT语句。

压缩

压缩客户端和服务器之间发送的所有信息(如果两个支持压缩)。

——创建选项

所有MySQL表选项都包含在创建表语句中。

——数据库

把多个数据库。在一般情况下,就把第一名的参数在命令行的数据库的名称,以及后来的名字是表名。使用此选项,则对所有名称参数为数据库名称,创建数据库不存在db_name和使用db_name语句包含在输出之前,每一个新的数据库。

---调试{ = debug_options },{ debug_options } - #

写日志,debug_options字符串通常会:T:啊,file_name。

-默认字符集=字符集

使用charsetas默认字符集。如果不指定,就使用UTF8。

——延迟插入

用插入延迟语句插入行。

-删除主日志

在主复制服务器上,二进制日志在转储操作完成后被删除。此选项将自动启用主数据。

-禁用键,k

对于每个表,以40000表tbl_name禁用 / *!* / / *键;40000修改表tbl_name使钥匙!* /声明指INSERT语句。这使得转储文件被加载更快,因为指数是后插入的所有行创建。此选项仅适用于对MyISAM表。

-扩展插入

使用多行插入的语法,包括几个值列表。这使得转储文件较小,可以加速文件时重载。

——由……结束的字段,由……括起来的字段,可选地包含在……,…——由…

这些选项是使用-t选项连接和作为负载的数据文件的相应条款有相同的意义。

-第一个奴隶,X

不赞成使用,现在重命名为-锁定所有表。

-刷新日志

MySQL服务器日志文件刷新转储开始之前。此选项需要重装的权限。请注意,如果该选项一起使用,所有的数据库(或一个)选项,日志刷新,根据数据库中的每一个垃圾场。唯一的例外是当--lock-all-tables或是使用主数据:在这种情况下,日志只刷新一次,在所有的表都被锁定了。如果你想甩掉同时刷新日志,你应该使用刷新日志连同--lock-all-tables或主数据。

-力,F

在表转储过程中,即使是SQL错误仍在继续。

——主机= host_name,H host_name

把数据从一个给定的主机的MySQL服务器的默认是本地主机。

——六滴

把116进制符号二进制字符串(例如,'abc'to 0x616263)。受影响的列的二进制、varbinary和斑点。

-锁定所有表

所有数据库中的所有表都被锁定。在整个转储过程中,它由全局读锁实现。此选项自动关闭——单个事务和锁定表。

-锁定表

锁定所有表转储开始之前,本地读锁表是用来让MyISAM表要插入平行。--单交易是交易表的一个较好的选择,如InnoDB和BDB,因为它不需要锁表的所有。

请注意,当多个数据库被转储时,锁表分别是每个数据库锁表。因此,此选项不能保证数据库中转储文件中的表的逻辑一致性。不同数据库表的转储状态可以完全不同。

——主数据{值}

此选项将二进制日志的位置和文件名写入输出。此选项需要重新加载权限,必须启用二进制日志。如果该选项的值等于1,则位置和文件名将以更改主语句的形式写入转储输出。如果使用SQL转储主服务器,从主服务器二进制日志中设置从服务器开始并从服务器的正确位置开始。如果选项值等于2,更改主语句被写入SQL注释。如果省略值,则为默认操作。

主数据选项允许锁定所有表,除非——还指定了单个事务。在这种情况下,全局读锁在转储开始时很短。请参见单事务。在任何情况下,与日志相关的操作都发生在转储中。此选项会自动关闭锁表。

-不创建db,n

如果不存在,则禁用创建数据库32312的选项!db_name声明,如果给予的数据库或所有数据库选项包含在输出。

-不创建信息,t

不要编写重新创建每个转储表的创建表语句。

-没有数据,D

不写表的任何一行信息,如果你想转储表的结构,它是非常有用的。

——选择

这个选项是速记。这相当于明确--添加--添加删除表锁定--创建选项--禁用按键扩展插入--锁定表--快--set-charset.it可以快速转储操作产生的转储文件,很快就可以被加载到MySQL服务器,这个选项默认是打开的,但可以用--skip-opt.to只禁用禁用选择启用-选择使准确的信用,使用-跳过-跳过形式;例如,添加删除表或不快。

——密码{密码},{ }密码}

连接服务器时使用的密码。如果使用短选项表(p),则在选项和密码之间不能有空格。如果忽略命令行中的密码或p选项后面的密码值,将提示输入一个密码。

端口= port_num,P port_num

连接的TCP/IP端口号。

——协议= { TCP套接字管内存} | | |

使用的连接协议。

-快,q

使用此选项将大表。它的力量就要从服务器检索行一行而不是检索所有行和缓存在内存在输出前。

-引用名称,q

`字符参考数据库、表和列的名称。如果服务器的SQL模式包括ansi_quotes选项,参考的名字与' '字符,默认是启用的,你可以使用跳跃报价名称禁用它,但这个选择应遵循的其他选项,如:兼容,可以启用--引用名称。

-结果文件=文件

将输出转到一个给定的文件。这个选项在Windows中应用,因为它禁止新行的转换。字符到返回,返回/新行。

-例程,r

自存储的程序(函数和程序)在转储数据库。输出生成使用---例程包含创建过程和创建创建子程序函数声明。然而,这些声明不包括属性,如子程序定义、创建和修改的时间戳。这表明当子程序是超载,定义应设置为重载用户被创建的时候,和时间戳等于超载时间。

如果你需要创建一个子程序,使用原来的定义和时间戳属性,你不使用--routines.instead,使用MySQL数据库MySQL账户相应权限卸载和过载的mysql.proc表的内容。

这个选项被添加到MySQL 5.1.2.before,存储程序不倾倒。

——设置字符集

添加设置名称default_character_set到输出,默认是启用,禁用集名称的声明,使用跳过设置字符集。

单交易

这个选项发出SQL语句之前开始把数据从服务器。它只适用于交易表,如InnoDB和BDB,因为那将把一致的数据库状态时开始不阻止任何应用程序发布。

使用此选项时,应记住,只有InnoDB表可以扔在一个一致的状态。例如,任何MyISAM或堆转储表仍然可以使用此选项时改变状态。

单事务选项和锁表选项是互斥的,因为锁表会引发任何挂起的事务。

要转储一个大表,可以使用这个选项——快速。

——套接字=路径,s路径

这是当连接本地主机使用socket文件(默认主机)。

——跳过注释

查看注释选项的说明。

——标签=路径,T路径

一个数据文件,通过标签分割产生的。每个转储表,就创建一个包含CREATE TABLE语句创建表tbl_name.sql文件和一个包含数据tbl_name.txt文件。期权价值是目录,文件写入。

默认情况下,txt数据文件的格式是在每行后面的列值和新行之间使用制表符。

注意:此选项仅适用于mysqldump和mysqld服务器在同一台机器上运行,你必须有文件的权限,并且服务器必须有权限在您指定的目录写文件。

——表

覆盖数据库或B选项。选项后面的所有参数都被视为表的名称。

——触发器

为每个转储表转储触发器。默认情况下启用此选项;用触发器禁用它。

——TZ UTC

集time_zone =+ 00:00'is添加到转储文件,时间戳列可以转储和超载的服务器不同的并行区域。(没有这个选项,时间戳列倾倒和重载的源服务器和目标服务器的本地时区之间)。——TZ UTC也可以保护由于日光时间的变化。——TZ UTC是默认启用,禁用,使用--skip-tz-utc.this选项添加到MySQL 5.1.2。

用户= user_name,U user_name

连接服务器时使用的mysql用户名。

-冗长,V

长模式。打印出程序操作的详细信息。

-版本,V

显示版本信息并退出。

——= 'where-condition ',- w'where-condition

只转储给定的条件选择的记录。请注意,如果条件包含命令解释器的特殊空间或字符,则需要参考条件。

例如:

——= = 'jimf用户

- wuserid > 1

- wuserid<1

——xml

将转储输出写入XML。

你也可以使用,var_name =价值选择设置下列变量:

max_allowed_packet

为客户/服务器之间的通信缓冲区的最大大小最大为1GB。

net_buffer_length

对缓存区的客户端/服务器之间的通信的初始大小。当多行插入语句创建(与选择--扩展插入或选择),就创建了一个长度net_buffer_length.if你添加这个变量,你也应该确保在MySQL服务器的net_buffer_length变量是在至少这么大。

你也可以使用设置变量= var_name =价值或O var_name =值语法来设置变量。然而,现在是否定的语法的使用。

mysqldump是最常用的备份整个数据库:

壳> mysqldump --选择db_name > backup-file.sql



可以通过转储文件将其读回服务器:



壳> MySQL db_name < backup-file.sql



或:



壳> MySQL -源/路径--备份/备份文件。SQLdb_name



mysqldump也可以用来复制数据的方式将数据从一个MySQL服务器到另一个服务器。

壳> mysqldump --选择db_name MySQL主机= remote_host C db_name |



可以用命令转储多个数据库:

壳> mysqldump ---数据库db_name2 db_name1 {…} > my_databases.sql



如果要转储所有数据库,请使用全数据库选项:



壳> mysqldump --所有数据库> all_databases.sql



如果表中存放的是InnoDB存储引擎,就提供了一种在线备份(见下面的命令)。这个备份只需要全球阅读所有的表锁(使用FLUSH TABLES WITH READ LOCK)开始转储的时间。在获得锁,读取二进制日志的相应内容释放锁。因此,当且仅当发送冲洗…执行长更新语句时,MySQL服务器停止,直到长语句结束,然后转储锁。因此,如果MySQL服务器只接收一个短(短执行时间)UPDATE语句,即使有大量语句,锁也不会被注意到。



壳> mysqldump --数据库--单交易> all_databases.sql

对于点到点恢复(也称为前滚),当需要恢复旧备份并在备份后重放更改)时,循环二进制日志或至少知道转储的二进制日志内容是有用的。



壳> mysqldump --所有数据库的主数据= 2 > all_databases.sql





壳> mysqldump --所有数据库刷新日志--主数据= 2 > all_databases.sql



如果表中存放的是InnoDB存储引擎,--主数据--单交易提供一个方便的方式来进行点对点恢复联机备份。