recording myself

mysql数据库备份--mysqldump命令常用详解

上一篇 / 下一篇  2011-07-19 19:03:00 / 个人分类:数据库之MYSQL

备份还原数据库(Linux and windows)

Usage: mysqldump [OPTIONS] database [tables]

OR    mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

OR    mysqldump [OPTIONS] --all-databases [OPTIONS]

#mysqldump [OPTIONS] db_name [OPTIONS] [tables] > bak_path_And_filename

备份:(mysqldump命令必须在mysql安装的bin目录下运行)

1.导出表结构和数据

Mysqldump -u”root” –p”pw” [db_Name] > d:\*.sql

2.只导出表结构

Mysqldump -u”root” -p”pw” -d [db_Name] > d:\*.sql

3.只导出表数据

Mysqldump -u”root” -p”pw” -t [db_Name] > d:\*.sql

4.导出指定的某些表(-t,-d

Mysqldump -u”root” -p”pw” -B[db_Name] --table [tablelist] > d:\*.sql

5.导出一个表的部分数据

mysqldump -u”root” -p”pw” [db_Name] [table_name] -where=” conditions” > d:\*.sql

还原--导入数据:

Mysql -u”root” -p”pw”

Use db_Name

mysql db_Name < d:\*.sql或者source d:\*.sql

 

mysqldump支持下列常用选项(参数OPTIONS)

-?, --help

帮助

1.连接路径:

-u, --user=name

与服务器连接时,MySQL使用的用户名。缺省值是你的当前登录名。

-p, --password[=name]

与服务器连接时,MySQL使用的口令。缺省值是你的当前用户口令。

-h, --host=name

与服务器连接时,MySQL连接的数据库服务器IP。缺省主机是localhost

-P, --port=#

与服务器连接时,MySQL数据库服务器使用的TCP/IP端口号。用于连接localhost以外的DB服务器时使用

2.数据筛选:

-A, --all-databases

选择所有的数据库

-B, --databases

指定操作数据库

--tables

指定操作表

-t, --no-create-info

只导出数据,而不添加CREATE TABLE语句。

-d, --no-data

不导出任何数据,只导出数据库表结构。

-w, --where=name

指定欲导出数据条件

3.字符集控制:

--default-character-set=name

指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

--set-charset

在输出文件中添加“SET NAMES default_character_set”使用默认字符集,--skip-set-charset取消默认

4.输出控制:

--opt

这只是一个快捷选项,等同于同时添加--add-drop-table,--add-locks,--create-options,--quick,--extended-insert,--lock-tables,--set-charset,--disable-keys选项。本选项能让mysqldump很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用--skip-opt禁用。注意,如果运行mysqldump没有指定--quick--opt选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。

-q, --quick

该选项在导出大表时很有用,它强制mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。

-T, --tab=name

对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE命令,和一个table_name.txt文件,它包含数据。注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作.txt文件的格式根据–fields-xxx和 –linesxxx选项来定。

-c, --complete-insert

导出的数据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数。

5.其他常用参数:

-x, --lock-all-tables

在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction--lock-tables选项。

-l, --lock-tables

它和--lock-all-tables类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于MyISAM表,如果是Innodb表可以用--single-transaction选项。

--single-transaction

该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如InnoDBBDB。本选项和--lock-tables选项是互斥的,因为LOCK TABLES会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick选项。

--add-drop-database

在创建数据库之前添加:DROP DATABASE语句

--add-drop-table

在每个create语句之前增加一个drop table

--add-locks

在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE(为了使得更快地插入到MySQL)

-F --flush-logs

备份前刷新日志,通常结合锁定表参数使用

--compatible = name

它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。值可以为ansimysql323mysql40postgresqloraclemssqldb2maxdbno_key_optionsno_tables_optionsno_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。

 

以下为网络转载一些该命令的常用方法:

备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。

mysqldump -h主机-u用户名-p密码数据库名>文件

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump –opt database > backupfile.sql

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个()

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename


TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 23358
  • 日志数: 12
  • 建立时间: 2011-07-15
  • 更新时间: 2011-07-29

RSS订阅

Open Toolbar