日期:2014-05-16  浏览次数:20357 次

mysqldump导入导出数据库总结

基本的使用方法总结:

1 导出所有库

 系统命令行
 mysqldump -uusername -ppassword --all-databases > all.sql
 
 2 导入所有库
 mysql命令行
 mysql>source all.sql;
 
 3 导出某些库
 系统命令行
 mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql
 
 4 导入某些库
 mysql命令行
 mysql>source db1db2.sql;
 
 5 导入某个库
 系统命令行
 mysql -uusername -ppassword db1 < db1.sql;
 或mysql命令行
 mysql>source db1.sql;
 
 6 导出某些数据表
 系统命令行
 mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql
 
 7 导入某些数据表
 系统命令行
 mysql -uusername -ppassword db1 < tb1tb2.sql
 或mysql命令行
 mysql>
 user db1;
 source tb1tb2.sql;
 
 8 mysqldump字符集设置
 mysqldump -uusername -ppassword --default-character-set=gb2312 db1 table1 > tb1.sql

 

mysqldump远不止上述那么简单,还可以设置更多的条件如:条件导出、仅导出结构信息、锁定等等,更详细的使用方法见王伟的博客http://wangwei007.blog.51cto.com/68019/980586 非常感谢作者的整理,下面拷贝来做个备份吧!

================================================

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wangwei007.blog.51cto.com/68019/980586


 mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。
 如果你在服务器上进行备份,并且表均为MyISAM表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。
 有3种方式来调用mysqldump:
 shell> mysqldump [options] db_name [tables]
 shell> mysqldump [options] ---database DB1 [DB2 DB3...]
 shell> mysqldump [options] --all--database
 如果没有指定任何表或使用了---database或--all--database选项,则转储整个数据库。
 要想获得你的版本的mysqldump支持的选项,执行mysqldump ---help。
 如果运行mysqldump没有--quick或--opt选项,mysqldump在转储结果前将整个结果集装入内存。如果转储大数据库可能会出现问题。该选项默认启用,但可以用--skip-opt禁用。
 如果使用最新版本的mysqldump程序生成一个转储重装到很旧版本的MySQL服务器中,不应使用--opt或-e选项。
 mysqldump支持下面的选项:
 ·         ---help,-?
 显示帮助消息并退出。
 ·         --add-drop--database
 在每个CREATE DATABASE语句前添加DROP DATABASE语句。
 ·         --add-drop-tables
 在每个CREATE TABLE语句前添加DROP TABLE语句。
 ·         --add-locking
 用LOCK TABLES和UNLOCK TABLES语句引用每个表转储。重载转储文件时插入得更快。
 ·         --all--database,-A
 转储所有数据库中的所有表。与使用---database选项相同,在命令行中命名所有数据库。
 ·         --allow-keywords
 允许创建关键字列名。应在每个列名前面加上表名前缀。
 ·         ---comments[={0|1}]
 如果设置为 0,禁止转储文件中的其它信息,例如程序版本、服务器版本和主机。--skip—comments与---comments=0的结果相同。 默认值为1,即包括额外信息。
 ·         --compact
 产生少量输出。该选项禁用注释并启用--skip-add-drop-tables、--no-set-names、--skip-disable-keys和--skip-add-locking选项。
 ·         --compatible=name
 产生与其它数据库系统或旧的MySQL服务器更兼容的输出。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options或者no_field_options。要使用几个值,用逗号将它们隔开。这些值与设置服务器SQL模式的相应选项有相同的含义。
 该选项不能保证同其它服务器之间的兼容性。它只启用那些目前能够使转储输出更兼容的SQL模式值。例如,--compatible=oracle 不映射Oracle类型或使用Oracle注释语法的数据类型。
 ·         --complete-insert,-c
 使用包括列名的完整的INSERT语句。
 ·         --compress,-C
 压缩在客户端和服务