找回密码
 立即注册
搜索
热搜: 生活 中国

MYSQLdump参数详解

[复制链接]
admin 发表于 2016-3-16 19:15:37 | 显示全部楼层 |阅读模式
  1. MYSQLdump参数详解
  2. mysqldump备份:
  3. 复制代码 代码如下:
  4. mysqldump -u用户名 -p密码 -h主机 数据库 a -w “sql条件” –lock-all-tables > 路径
  5. mysqldump还原:
  6. 复制代码 代码如下:
  7. mysqldump -u用户名 -p密码 -h主机 数据库 < 路径
  8. mysqldump按条件导出:
  9. 复制代码 代码如下:
  10. mysqldump -u用户名 -p密码 -h主机 数据库 a –where “条件语句” –no-建表> 路径
  11. mysqldump -uroot -p1234 dbname a –where “tag='88′” –no-create-info> c:\a.sql
  12. mysqldump按条件导入:
  13. 复制代码 代码如下:
  14. mysqldump -u用户名 -p密码 -h主机 数据库 < 路径
  15. 案例:
  16. 复制代码 代码如下:
  17. mysql -uroot -p1234 db1 < c:\a.txt
  18. mysqldump导出表:
  19. 复制代码 代码如下:
  20. mysqldump -u用户名 -p密码 -h主机 数据库 表
  21. 案例:mysqldump -uroot -p sqlhk9 a –no-data
  22. 主要参数
  23. –compatible=name
  24. 它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。
  25. –complete-insert,-c
  26. 导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。
  27. –default-character-set=charset
  28. 指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。
  29. –disable-keys
  30. 告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
  31. –extended-insert = true|false
  32. 默认情况下,mysqldump 开启 –complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。
  33. –hex-blob
  34. 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。
  35. –lock-all-tables,-x
  36. 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 –single-transaction 和 –lock-tables 选项。
  37. –lock-tables
  38. 它和 –lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 –single-transaction 选项。
  39. –no-create-info,-t
  40. 只导出数据,而不添加 CREATE TABLE 语句。
  41. –no-data,-d
  42. 不导出任何数据,只导出数据库表结构。
  43. –opt
  44. 这只是一个快捷选项,等同于同时添加 –add-drop-tables –add-locking –create-option –disable-keys –extended-insert –lock-tables –quick –set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 –skip-opt 禁用。注意,如果运行 mysqldump 没有指定 –quick 或 –opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
  45. –quick,-q
  46. 该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
  47. –routines,-R
  48. 导出存储过程以及自定义函数。
  49. –single-transaction
  50. 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。
  51. 本选项和 –lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。
  52. 要想导出大表的话,应结合使用 –quick 选项。
  53. –triggers
  54. 同时导出触发器。该选项默认启用,用 –skip-triggers 禁用它。
  55. 其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:
  56. /usr/local/mysql/bin/mysqldump -uyejr -pyejr ”
  57. –default-character-set=utf8 –opt –extended-insert=false ”
  58. –triggers -R –hex-blob -x db_name > db_name.sql
  59. 使用以下 SQL 来备份 Innodb 表:
  60. /usr/local/mysql/bin/mysqldump -uyejr -pyejr ”
  61. –default-character-set=utf8 –opt –extended-insert=false ”
  62. –triggers -R –hex-blob –single-transaction db_name > db_name.sql
  63. 另外,如果想要实现在线备份,还可以使用 –master-data 参数来实现,如下:
  64. /usr/local/mysql/bin/mysqldump -uyejr -pyejr ”
  65. –default-character-set=utf8 –opt –master-data=1 ”
  66. –single-transaction –flush-logs db_name > db_name.sql
  67. 它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。
  68. 1.2 还原
  69. 用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。
  70. 直接用 mysql 客户端
  71. 例如:
  72. 复制代码 代码如下:
  73. /usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
  74. Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面为大家分享一下操作的常用的命令。
  75. 一、备份命令
  76. 1、备份MySQL数据库的命令
  77. <!--
  78. Code highlighting produced by Actipro CodeHighlighter (freeware)
  79. http://www.CodeHighlighter.com/
  80. -->  mysqldump-hhostname-uusername-ppassword databasename>backupfile.sql
  81. 2、备份MySQL数据库为带删除表的格式
  82. 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
  83. <!--
  84. Code highlighting produced by Actipro CodeHighlighter (freeware)
  85. http://www.CodeHighlighter.com/
  86. -->  mysqldump-–add-drop-table-uusername-ppassword databasename>backupfile.sql
  87. 3、直接将MySQL数据库压缩备份
  88. <!--
  89. Code highlighting produced by Actipro CodeHighlighter (freeware)
  90. http://www.CodeHighlighter.com/
  91. -->  mysqldump-hhostname-uusername-ppassword databasename|gzip>backupfile.sql.gz
  92. 4、备份MySQL数据库某个(些)表
  93. <!--
  94. Code highlighting produced by Actipro CodeHighlighter (freeware)
  95. http://www.CodeHighlighter.com/
  96. -->  mysqldump-hhostname-uusername-ppassword databasename specific_table1 specific_table2>backupfile.sql
  97. 5、同时备份多个MySQL数据库
  98. <!--
  99. Code highlighting produced by Actipro CodeHighlighter (freeware)
  100. http://www.CodeHighlighter.com/
  101. -->  mysqldump-hhostname-uusername-ppassword –databases databasename1 databasename2 databasename3>multibackupfile.sql
  102. 6、仅仅备份数据库结构
  103. <!--
  104. Code highlighting produced by Actipro CodeHighlighter (freeware)
  105. http://www.CodeHighlighter.com/
  106. -->  mysqldump –no-data –databases databasename1 databasename2 databasename3>structurebackupfile.sql
  107. 7、备份服务器上所有数据库
  108. <!--
  109. Code highlighting produced by Actipro CodeHighlighter (freeware)
  110. http://www.CodeHighlighter.com/
  111. -->  mysqldump –all-databases>allbackupfile.sql
  112. 二、还原命令
  113. 1、还原MySQL数据库的命令
  114. <!--
  115. Code highlighting produced by Actipro CodeHighlighter (freeware)
  116. http://www.CodeHighlighter.com/
  117. -->  mysql-hhostname-uusername-ppassword databasename<backupfile.sql
  118. 2、还原压缩的MySQL数据库
  119. <!--
  120. Code highlighting produced by Actipro CodeHighlighter (freeware)
  121. http://www.CodeHighlighter.com/
  122. -->  gunzip<backupfile.sql.gz|mysql-uusername-ppassword databasename
  123. 3、将数据库转移到新服务器
  124. <!--
  125. Code highlighting produced by Actipro CodeHighlighter (freeware)
  126. http://www.CodeHighlighter.com/
  127. -->  mysqldump-uusername-ppassword databasename|mysql –host=*.*.*.*-C databasename
  128. mysql,命令导入\导出表结构或数据
  129. 在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
  130. mysqldump
  131. 最常用的:
  132. mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql
  133. 这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数
  134. C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_drv > e:\date_drv.sql
  135. mysql的数据导入也是相当便捷的,如:
  136. mysql -uroot databasefoo < foo.sql
  137. 这样就可以将foo.sql的数据全部导入数据库databasefoo
  138. 1.导出整个数据库
  139.   mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
  140.   C:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql
  141.   2.导出一个表,包括表结构和数据
  142.   mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
  143.   C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql
  144.   3.导出一个数据库结构
  145.   C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql
  146. 4.导出一个表,只有表结构
  147.   mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
  148.   C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql
  149.   5.导入数据库
  150.   常用source 命令
  151.   进入mysql数据库控制台,
  152.   如mysql -u root -p
  153.   mysql>use 数据库
  154.   然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
  155.   mysql>source d:wcnc_db.sql
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生活导航|生活导航 ( 新ICP备12003026-1号 )

GMT+8, 2024-5-20 20:31 , Processed in 0.070550 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表