MySQL 之间导入数据 mysqldump工具



MySQLmysqldump工具基本使用方法是:

shell>mysqldump[OPTIONS]database[tables]

如果你不给定任何表整个数据库将被导出

通过执行mysqldump--help你能得到你mysqldump版本支持选项表

注意如果你运行mysqldump没有--quick或--opt选项mysqldump将在导出结果前装载整个结果集到内存中如果你正在导出个大数据库这将可能是个问题

mysqldump支持下列选项:

--add-locks
在每个表导出的前增加LOCKTABLES并且的后UNLOCKTABLE(为了使得更快地插入到MySQL)
--add-drop-table
在每个create语句的前增加个droptable
--allow-keywords
允许创建是关键词列名字这由表名前缀于每个列名做到
-c,--complete-insert
使用完整insert语句(用列名字)
-C,--compress
如果客户和服务器均支持压缩压缩两者间所有信息
--delayed
用INSERTDELAYED命令插入行
-e,--extended-insert
使用全新多行INSERT语法(给出更紧缩并且更快插入语句)
-#,--debug[=option_]
跟踪使用(为了调试)
--help
显示条帮助消息并且退出
--fields-terminated-by=...
 
--fields-enclosed-by=...
 
--fields-optionally-enclosed-by=...
 
--fields-escaped-by=...
 
--fields-terminated-by=...
这些选择和-T选择起使用并且有相应LOADDATAINFILE子句相同含义
LOADDATAINFILE语法
-F,--flush-logs
在开始导出前洗掉在MySQL服务器中日志文件
-f,--force,
即使我们在个表导出期间得到个SQL继续
-h,--host=..
从命名主机上MySQL服务器导出数据缺省主机是localhost
-l,--lock-tables.
为开始导出锁定所有表
-t,--no-create-info
不写入表创建信息(CREATETABLE语句)
-d,--no-data
不写入表任何行信息如果你只想得到个表结构导出这是很有用! [Page]
--opt
同--quick--add-drop-table--add-locks--extended-insert--lock-tables
应该给你为读入个MySQL服务器尽可能最快导出
-pyour_pass,--password[=your_pass]
和服务器连接时使用口令如果你不指定“=your_pass”部分mysqldump需要来自终端口令
-Pport_num,--port=port_num
台主机连接时使用TCP/IP端口号(这用于连接到localhost以外主机它使用Unix套接字)
-q,--quick
不缓冲查询直接导出至stdout;使用mysql_use_result做它
-S/path/to/,--=/path/to/
和localhost连接时(它是缺省主机)使用套接字文件
-T,--tab=path-to-some-directory
对于每个给定创建个table_name.sql文件它包含SQLCREATE命令个table_name.txt文件它包含数据注意:这只有在mysqldump运行在mysqld守护进程运行台机器上时候才工作.txt文件格式根据--fields-xxx和--lines--xxx选项来定
-uuser_name,--user=user_name
和服务器连接时MySQL使用用户名缺省值是你Unix登录名
-Ovar=option,---variablevar=option设置个变量可能变量被列在下面
-v,--verbose
冗长模式打印出所做更多信息
-V,--version
打印版本信息并且退出
-w,--where=’where-condition’
只导出被选择了记录;注意引号是强制
\"--where=user=’jimf’\"\"-wuserid>1\"\"-wuserid<1\"

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

mysqldump--optdatabase>backup-file.sql

但是它对用来自于个数据库信息充实另外个MySQL数据库也是有用:

mysqldump--optdatabase|mysql--host=remote-host-Cdatabase

由于mysqldump导出是完整SQL语句所以用mysql客户很容易就能把数据导入了:

shell>mysqladmincreatetarget_db_name


shell>mysqltarget_db_name<backup-file.sql
就是
shell>mysql库名<文件名

================================
几个常用用例: [Page]

1.导出整个数据库
mysqldump-u用户名-p数据库名>导出文件名
mysqldump-uwcnc-psmgp_apps_wcnc>wcnc.sql
2.导出个表
mysqldump-u用户名-p数据库名表名>导出文件名
mysqldump-uwcnc-psmgp_apps_wcncusers>wcnc_users.sql
3.导出个数据库结构
mysqldump-uwcnc-p-d--add-drop-tablesmgp_apps_wcnc>d:\\wcnc_db.sql

-d没有数据--add-drop-table在每个create语句的前增加个droptable

4.导入数据库
常用source命令
进入mysql数据库控制台
如mysql-uroot-p

mysql>use数据库

然后使用source命令后面参数为脚本文件(如这里用到.sql)
mysql>sourced:\\wcnc_db.sql

Tags: 

延伸阅读

最新评论

发表评论