竞博体育 > 数据 > mysqldump帮助下列选项,并停在原地

mysqldump帮助下列选项,并停在原地

运用MySQL MySqldump命令导出多少时的注意事项,mysqlmysqldump

几日前应用mysqldump命令备份数据的时候现身了三个难题。
一齐头搬迁 Discuz 7 论坛的 mysql 数据库时,选用 mysqldump 命令的时候一切顺利,但导入的时候却遇上了
 ERROR 1062 (xxxxx) at line 1262: Duplicate entry 'XXX' for key 'XXX‘ 错误,并停在原地。

对于碰到相似错误的对象千万别第有时间就尝试用 –force 参数强行导入(除非您本来的数据库已经旁落卡塔尔。因为如此做的话,即便导入了,也许有一大片数量错失! 那时你能够尝试以下2个章程:

**风姿洒脱、mysqldump 备份的时候利用 --extended-insert=false 参数。

**原理如下:
行使MySqldump命令导出多少时的静心
在应用Mysql做根基数据库时,由于须要将库B的数量导入库A,而A,B库又含有大量相似的数码,供给动用mysqldump导出脚本.
日常的命令会是

mysqldump -t 'dbName' > 'scriptName.sql'
mysql -f 'dbName' < 'scriptName.sql'

而接受如下命令导入到A库时不会中标,现象是报出多少个Duplicate key error后就终止了,并未有将别的准确的多少插入到A库中.
捣鼓了好一会,发以后利用mysqldump导出的本子命令中,insert语句选用是multiline insert synax.并非运用single insert synax.原本是以此难题. 多行的插入语法在首先个主健重复错误后就不实行后续的对应表的插入语句了.
于是再加参数 --extended-insert=false,完整的授命是

mysqldump --extended-insert=false dbname > scriptname.sql

二、手工业把表中username里设有双重的值删除

使用数据库工具 Navicat 之类的,实践查询:

Select username,Count(*) From cdb_members Group By username Having Count(*) > 1

结果中就能够显得出表中留存重复的字段, 你会见到2个也许多个完全大同小异重复的客户名。删除当中豆蔻梢头行的记录,保存后再导出数据库。
此地须要特别注意:备份的时候,把表布局跟数据分开!

以下是 mysqldump 的有些应用参数

备份数据库:

#mysqldump 数据库名 >数据库备份名
#mysqldump -A -u用户名 -p密码 数据库名>数据库备份名
#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql

1.导出构造不导出多少

mysqldump -d 数据库名 -uroot -p > xxx.sql

2.导出多少不导出构造

mysqldump -t 数据库名 -uroot -p > xxx.sql

3.导出多少和表布局

mysqldump 数据库名 -uroot -p > xxx.sql

4.导出特定表的布局

mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql
#mysqldump [OPTIONS] database [tables]

mysqldump协理下列选项:

--add-locks
在每一种表导出事情未发生前增添LOCK TABLES何况之后UNLOCK TABLE。(为了使得越来越快地插入到MySQL卡塔尔(قطر‎。

--add-drop-table
在各类create语句在此以前扩充一个drop table。

--allow-keywords
竞博体育 ,同意创设是重视词的列名字。那由表名前缀于各种列名做到。

-c, --complete-insert
行使完全的insert语句(用列名字卡塔尔(英语:State of Qatar)。

-C, --compress
假诺客商和服务器均扶助压缩,压缩两个间全数的音讯。

--delayed
用INSERT DELAYED命令插入行。

-e, --extended-insert
动用崭新多行INSERT语法。(给出更紧缩而且更加快的插入语句)

-#, --debug[=option_string]
追踪程序的选择(为了调节和测量试验卡塔尔(قطر‎。

--help
展现一条扶植音讯还要脱离。

--fields-terminated-by=...
 
--fields-enclosed-by=...
 
--fields-optionally-enclosed-by=...
 
--fields-escaped-by=...
 
--fields-terminated-by=...

那几个选择与-T选用一齐利用,何况有对应的LOAD DATA INFILE子句相仿的意义。
LOAD DATA INFILE语法。

-F, --flush-logs
在最开头出前,洗掉在MySQL服务器中的日志文件。

-f, --force,
就算大家在两个表导出里面获得八个SQL错误,继续。

-h, --host=..
从命名的主机上的MySQL服务器导出多少。缺省主机是localhost。

-l, --lock-tables.
为发端导出锁定全体表。

-t, --no-create-info
不写入表创制消息(CREATE TABLE语句)

-d, --no-data
不写入表的其余行新闻。倘诺您只想赢得二个表的结构的导出,那是很有用的!

--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
有道是给您为读入三个MySQL服务器的玩命最快的导出。

-pyour_pass, --password[=your_pass]
与服务器连接时利用的口令。借使您不钦点“=your_pass”部分,mysqldump须求来自终端的口令。

-P port_num, --port=port_num
与意气风发台主机连接时行使的TCP/IP端口号。(那用于连接到localhost以外的主机,因为它使用 Unix套接字。)

-q, --quick
不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。

-S /path/to/socket, --socket=/path/to/socket
与localhost连接时(它是缺省主机卡塔尔使用的套接字文件。

-T, --tab=path-to-some-directory
对此各样给定的表,创设三个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它蕴涵数据。 注意:这唯有在mysqldump运转在mysqld守护进度运维的同等台机器上的时候才职业。.txt文件的格式依据--田野先生s-xxx和--lines--xxx选项来定。

-u user_name, --user=user_name
与服务器连接时,MySQL使用的客商名。缺省值是您的Unix登陆名。

-O var=option, --set-variable var=option设置一个变量的值。只怕的变量被列在上边。

-v, --verbose
笔走龙蛇方式。打字与印刷出程序所做的越来越多的信息。

-V, --version
打字与印刷版本消息并且脱离。

-w, --where='where-condition'
只导出被增选了的笔录;注意引号是免强的!
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"

**导入数据:

**由于mysqldump导出的是完整的SQL语句,所以用mysql顾客程序非常轻便就可以把多少导入了:

#mysql 数据库名 < 文件名
#source /tmp/xxx.sql

导出要用到MySQL的mysqldump工具,基本用法是:  

mysql 导出多少时mysqldump命令的标题

怎么看命令怪怪的...

mysqldump test -u root >d:t.sql  

shell> mysqldump [OPTIONS] database [tables]  

运用mysqldump导出mysql数据的主题素材

mysql -uroot -p123 test < 1.sql  

MySqldump命令导出多少时的注意事项,mysqlmysqldump 今天应用mysqldump命令备份数据的时候现身了二个难题。 一发端搬迁 Discuz 7 论坛的...

假使你不给定任何表,整个数据库将被导出。  

经超过实际施mysqldump --help,你能获得你mysqldump的本子帮忙的选项表。  

潜心,假若您运维mysqldump未有--quick或--opt选项,mysqldump就要导出结果前装载整个结果集到内部存款和储蓄器中,倘使您正在导出叁个大的数据库,这将可能是二个主题素材。  

mysqldump辅助下列选项:  

--add-locks  
在各类表导出事情未发生前增添LOCK TABLES而且之后UNLOCK TABLE。(为了使得更加快地插入到MySQL卡塔尔国。  
--add-drop-table  
在各样create语句此前扩充八个drop table。  
--allow-keywords  
同意创立是首要词的列名字。那由表名前缀于各个列名做到。  
-c, --complete-insert  
运用完全的insert语句(用列名字卡塔尔。  
-C, --compress  
设若客户和服务器均扶植压缩,压缩两个间全部的新闻。  
--delayed  
用INSERT DELAYED命令插入行。  
-e, --extended-insert  
动用全新多行INSERT语法。(给出更紧缩並且更加快的插入语句)  
-#, --debug[=option_string]  
盯住程序的利用(为了调解卡塔尔。  
--help  
展现一条支持音讯还要脱离。  
--fields-terminated-by=...  
   
--fields-enclosed-by=...  
   
--fields-optionally-enclosed-by=...  
   
--fields-escaped-by=...  
   
--fields-terminated-by=...  
那几个接纳与-T选择一齐使用,何况有相应的LOAD DATA INFILE子句相通的意思。  
LOAD DATA INFILE语法。  
-F, --flush-logs  
在上马导出前,洗掉在MySQL服务器中的日志文件。  
-f, --force,  
纵然我们在叁个表导出里面得到贰个SQL错误,继续。  
-h, --host=..  
从命名的主机上的MySQL服务器导出多少。缺省主机是localhost。  
-l, --lock-tables.  
为初阶导出锁定全数表。  
-t, --no-create-info  
不写入表创制音讯(CREATE TABLE语句)  
-d, --no-data  
不写入表的其余行音讯。如果你只想获得三个表的结构的导出,那是很有用的!  
--opt  
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。  
有道是给您为读入三个MySQL服务器的尽量最快的导出。  
-pyour_pass, --password[=your_pass]  
与服务器连接时行使的口令。假若您不内定“=your_pass”部分,mysqldump须要来自终端的口令。  
-P port_num, --port=port_num  
与风度翩翩台主机连接时使用的TCP/IP端口号。(那用于连接到localhost以外的主机,因为它利用 Unix套接字。)  
-q, --quick  
不缓冲查询,间接导出至stdout;使用mysql_use_result()做它。  
-S /path/to/socket, --socket=/path/to/socket  
与localhost连接时(它是缺省主机卡塔尔(英语:State of Qatar)使用的套接字文件。  
-T, --tab=path-to-some-directory  
对此各样给定的表,创立一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它含有数据。 注意:那唯有在mysqldump运维在mysqld守护进度运营的同样台机器上的时候才职业。.txt文件的格式根据--田野s-xxx和--lines--xxx选项来定。  
-u user_name, --user=user_name  
与服务器连接时,MySQL使用的顾客名。缺省值是你的Unix登入名。  
-O var=option, --set-variable var=option设置贰个变量的值。大概的变量被列在下边。  
-v, --verbose  
鸾翔凤翥形式。打字与印刷出程序所做的越多的音讯。  
-V, --version  
打字与印刷版本消息并且脱离。  
-w, --where='where-condition'  
只导出被增选了的笔录;注意引号是胁制的!  
"--where=user='jimf'" "-wuserid>1" "-wuserid<1" 

最遍布的mysqldump使用或然创建整个数据库的叁个备份: 

mysqldump --opt database > backup-file.sql  

而是它对用来自于二个数据库的音信充实其余一个MySQL数据库也是立竿见影的:  

mysqldump帮助下列选项,并停在原地。mysqldump --opt database | mysql --host=remote-host -C database  

出于mysqldump导出的是总体的SQL语句,所以用mysql顾客程序十分轻便就能够把数量导入了:  

shell> mysqladmin create target_db_name  
shell> mysql target_db_name < backup-file.sql 
就是 
shell> mysql 库名 < 文件名

================================
多少个常用用例:

1.导出总体数据库
 mysqldump -u 客户名 -p 数据库名 > 导出的文件名   
 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出三个表
 mysqldump -u 客户名 -p 数据库名 表名> 导出的文书名
 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出三个数据库布局
  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

 -d 未有数据 --add-drop-table 在各个create语句此前增添叁个drop table

4.导入数据库
  常用source 命令
  步入mysql数据库调控台,
  如mysql -u root -p
 
  mysql>use 数据库

  然后利用source命令,前面参数为脚本文件(如这里运用的.sql)
  mysql>source d:wcnc_db.sql

  • 首页
  • 电话
  • 软件