mysqldump用法数据库导出(三)
--skip--comments
参见---comments选项的描述。
--tab=path,-T path
产生tab分割的数据文件。对于每个转储的表,mysqldump创建一个包含创建表的CREATE TABLE语句的tbl_name.sql文件,和一个包含其数据的tbl_name.txt文件。选项值为写入文件的目录。
默认情况,.txt数据文件的格式是在列值和每行后面的新行之间使用tab字符。可以使用--fields-xxx和--行--xxx选项明显指定格式。
注释:该选项只适用于mysqldump与mysqld服务器在同一台机器上运行时。你必须具有FILE权限,并且服务器必须有在你指定的目录中有写文件的许可。
--tables
覆盖---database或-B选项。选项后面的所有参量被看作表名。
--triggers
为每个转储的表转储触发器。该选项默认启用;用--skip-triggers禁用它。
--tz-utc
在转储文件中加入SET TIME_ZONE='+00:00'以便TIMESTAMP列可以在具有不同时区的服务器之间转储和重载。(不使用该选项,TIMESTAMP列在具有本地时区的源服务器和目的服务器之间转储和重载)。--tz-utc也可以保护由于夏令时带来的更改。--tz-utc默认启用。要想禁用它,使用--skip-tz-utc。该选项在MySQL 5.1.2中加入。
--user=user_name,-u user_name
连接服务器时使用的MySQL用户名。
--verbose,-v
冗长模式。打印出程序操作的详细信息。
--version,-V
显示版本信息并退出。
--where='where-condition', -w 'where-condition'
只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。
例如:
"--where=user='jimf'"
"-wuserid>1"
"-wuserid<1"
--xml,-X
将转储输出写成XML。
还可以使用--var_name=value选项设置下面的变量:
max_allowed_packet
客户端/服务器之间通信的缓存区的最大大小。最大为1GB。
net_buffer_length
客户端/服务器之间通信的缓存区的初始大小。当创建多行插入语句时(如同使用选项--extended-insert或--opt),mysqldump创建长度达net_buffer_length的行。如果增加该变量,还应确保在MySQL服务器中的net_buffer_length变量至少这么大。
还可以使用--set-variable=var_name=value或-O var_name=value语法设置变量。然而,现在不赞成使用该语法。
例1
a.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名
C代码
[root@linux mysql]# mysqldump -u dbadmin -p myblog > /home/zhangy/blog/database_bak/myblog.sql
b.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
C代码
[root@linux mysql]# mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql
c.导出一个数据库结构 -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
C代码
[root@linux mysql]# mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql
d.导出数据库一个表结构
C代码
[root@linux mysql]# mysqldump -u dbadmin -p -d --add-drop-table myblog wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql
例2
mysqldump导出数据库并压缩
C代码
$ mysqldump -u user -ppassword database | xz > database.sql.xz #使用xz压缩,如果换成gzip,可以改成gz压缩,bzip2同样,注意最后的扩展名
$ unxz -c database.sql.xz | mysql -u user -ppassword database #不需要释放出已压缩的sql脚本直接进行导入操作,如果是其他格式的压缩,需要相应的解压命令,使用解压到stdout的参数
$ pv database.sql.xz | unxz -c | mysql -u user -ppassword database #想看到导入的进度?没问题,使用pv命令就可以,需要自己安装pv命令,ubuntu
系统直接apt-get install pv,RHEL/centos需要添加rpmfusion源之后yum install pv