当使用mysql的mysqldump命令导出数据的通知

有一个问题,当使用mysqldump命令来备份数据。

当它开始迁移的Discuz论坛7 MySQL数据库,它是所有的权利时,mysqldump命令的使用,但它遇到了进口。

错误1062(xxxxx)1262行:重复entry'xxx'for key'xxx错误,并停止的地方。

不要第一次使用强制参数导入(除非您的原始数据库已经崩溃),否则会导致大量的数据丢失!

此时,您可以尝试以下2种方法:

一、当mysqldump备份使用扩展插入= false参数。



这些原则如下:

当使用mysqldump命令导出数据的关注

当你使用MySQL作为数据库,你需要导入库的B数据进库,和一个,和B库包含很多相同的数据,你需要使用mysqldump输出脚本。

通常的命令是


就t'dbname> 'scriptname SQL。
MySQL f'dbname< 'scriptname SQL。




将以下命令导入库将不成功。该现象在多次重复的关键错误报告之后完成,并且没有其他正确的数据插入库中。

就在那一刻,在mysqldump导出脚本命令的使用中发现,使用多行插入语句语法。而不是使用单一的插入语法。这就是问题所在。第一个初级卫生中的多行插入文法在执行下表INSERT语句后不会重复错误。

然后添加参数——扩展INSERT = false,完整的命令是


mysqldump扩展插入=假dbname > scriptname.sql




二,手动删除表中用户名中的重复值。

执行查询使用数据库工具Navicat,等等:


选择用户名,计数(*)从cdb_members组用户名具有计数(*)> 1




结果表明,表中有重复的字段,你会看到2个或更多的用户,是完全相同的。删除其中一条记录,然后保存数据库保存后。

这里需要特别注意:当进行备份时,表的结构与数据分离。

以下是一些正在使用的参数

备份数据库:




# mysqldump数据库名称>数据库备份的名称
# mysqldump -你的用户名-密码数据库名称>数据库备份的名称
# mysqldump - D -一-添加下拉表中,P>xxx.sql



1。出口结构不出口数据




就D数据库名称-中- P>xxx.sql



2。导出数据不导出




就T数据库名称-中- P>xxx.sql



三.导出数据和表结构




mysqldump数据库名称中,P>xxx.sql



4。导出特定表的结构




就中P B数据库名,表名> xxx.sql
# mysqldump { } { }选择数据库表



mysqldump支持以下选项:

——加锁

在每个表导出之前添加锁表,然后打开表。

——添加下拉表

在每一个创建语句之前添加一个下拉表。

——让关键词

栏目的名称是可以创造的。这是以表名的每个列的名称。

- c,完全插入

使用完整的INSERT语句(使用列名)。

-压缩

如果客户端和服务器都支持压缩,那么两者之间的所有信息都是压缩的。

——延迟

用插入延迟命令插入行。

-,扩展插入

使用一个新的行插入语法。(给一个更紧凑的和更快的INSERT语句)

- #,——调试{ = option_string }

跟踪程序的使用(用于调试)。

——帮助

显示帮助信息并退出。

字段终止于…

U3000

——封闭的字段…

U3000

字段可选地包含…

U3000

——字段转义…

U3000

字段终止于…

这些选择与不选择一起使用,有相应的LOAD DATA INFILE子句的意思相同。

LOAD DATA INFILE语法。

- f,刷新日志

在开始导出之前,先清理MySQL服务器中的日志文件。

- f,-力,

即使在导出表时遇到SQL错误,仍然继续。

h,-主机=…

出口对指定主机的MySQL服务器的默认主机的本地数据。

- L—锁定表。

锁定所有开始的表。

- t,不创建信息

非写表创建信息(创建表语句)

- d,没有数据

没有写入表的任何行信息。如果您只想导出表的结构,那么它非常有用!

——选择

——快速添加表——添加锁——扩展插入——锁定表。

你应该给你一个MySQL服务器最快的输出。

- pyour_pass,密码{ = your_pass }

连接到服务器时使用的密码。如果你没有指定= your_pass部分,就需要从终端的密码。

P port_num,端口= port_num

TCP / IP端口号连接到主机时使用。(这是用来连接外部主机主机因为它使用UNIX套接字。)

-快速

没有缓冲的查询,直接出口到标准输出;使用mysql_use_result()去做。

-路径/套接字

套接字文件使用localhost连接时(这是默认的主机)。

-,=某些目录的路径

对于每一个给定的表,创建一个table_name.sql文件包含创建SQL命令,和一个table_name.txt文件包含数据。注意:这只能当正在运行在相同的机器由mysqld守护进程运行。该格式。txt文件是基于——XXX和XXX领域线选项。

U user_name,用户= user_name

MySQL连接到服务器时使用的用户名。默认值是您的UNIX登录名。

- o =选项,-设置变量var =选项设置变量的值。

-,详细的

长模式。从程序中打印更多信息。

- V,版本

打印版本信息并退出。

W,——= 'where-condition

仅导出所选记录;必须注意引用。

——=用户= 'jimfwuserid > 1 wuserid<1

进口数据:



因为mysqldump出口是一个完整的SQL语句,很容易导入数据的MySQL客户端程序:




# MySQL数据库名称<文件名
#源 / / xxx.sql TMP