mysqldump命令导入导出数据库方法与实例汇总

2019-01-04 20:19:51王旭

 --port=port_num,-p port_num
 用于连接的tcp/ip端口号。
 --protocol={tcp | socket | pipe | memory}
 使用的连接协议。
 --quick,-q
 该选项用于转储大的表。它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行并在输出前将它缓存到内存中。
 --quote-names,-q
 用‘`'字符引用数据库、表和列名。如果服务器sql模式包括ansi_quotes选项,用‘"'字符引用名。默认启用该选项。可以用--skip-quote-names禁用,但该选项应跟在其它选项后面,例如可以启用--quote-names的--compatible。
 --result-file=file,-r file
 将输出转向给定的文件。该选项应用在windows中,因为它禁止将新行‘n'字符转换为‘rn'回车、返回/新行序列。
 --routines,-r
 在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含create procedure和create function语句以重新创建子程序。但是,这些语句不包括属性,例如子程序定义者或创建和修改时间戳。这说明当重载子程序时,对它们进行创建时定义者应设置为重载用户,时间戳等于重载时间。
 如果你需要创建的子程序使用原来的定义者和时间戳属性,不使用--routines。相反,使用一个具有mysql数据库相应权限的mysql账户直接转储和重载mysql.proc表的内容。
 该选项在mysql 5.1.2中添加进来。在此之前,存储程序不转储。
 --set-charset
 将set names default_character_set加到输出中。该选项默认启用。要想禁用set names语句,使用--skip-set-charset。
 --single-transaction
 该选项从服务器转储数据之前发出一个begin sql语句。它只适用于事务表,例如innodb和bdb,因为然后它将在发出begin而没有阻塞任何应用程序时转储一致的数据库状态。
 当使用该选项时,应记住只有innodb表能以一致的状态被转储。例如,使用该选项时任何转储的myisam或heap表仍然可以更改状态。
 --single-transaction选项和--lock-tables选项是互斥的,因为lock tables会使任何挂起的事务隐含提交。
 要想转储大的表,应结合--quick使用该选项。
 --socket=path,-s path
 当连接localhost(为默认主机)时使用的套接字文件。
 --skip--comments
 参见---comments选项的描述。
 --tab=path,-t path
 产生tab分割的数据文件。对于每个转储的表,mysqldump创建一个包含创建表的create table语句的tbl_name.sql文件,和一个包含其数据的tbl_name.txt文件。选项值为写入文件的目录。
 默认情况,.txt数据文件的格式是在列值和每行后面的新行之间使用tab字符。可以使用--fields-xxx和--行--xxx选项明显指定格式。