mysqldump导库出错 Duplicate entry ” for key 1
mysqldump导库出错 Duplicate entry ” for key 1
这个数据库备份是用后台自带的备份程序备份的,400多M,比较大,所以没用phpmyadmin导入,进入cmd ,mysql -h localhost -u root -p 数据库名<”备份的sql文件路径”,却出错:ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1,然后自动停止导入,回滚到原先状态了,我日啊!
这是什么问题引起的啊,上百度,上gg,也找不到好的解决办法,只好 mysql -h localhost -u root -p 数据库名<”备份的sql文件路径” –f 出错也会继续导入了。
上网搜到了这条,先copy下来,慢慢研究:
ERROR 1062 (23000) at line 501: Duplicate entry ” for key 1 ERROR 1062 (23000): Duplicate entry 是什???啊? mysql> INSERT INTO userinfo VALUES (‘崔江虎 ‘, ’20030481′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20030481′ for key 1
mysql> INSERT INTO userinfo VALUES (‘唐斌 ‘, ’20023109′, ’2004B_8600661_03′, ”, ”, ”, ’2004B_8600661_03′);
ERROR 1062 (23000): Duplicate entry ’20023109′ for key 1
mysql>
Re: ERROR 1062 (23000): Duplicate entry 是什???啊?
你的userinfo的第二??field要求是unique的,而你的table?已?有了一?l??,它的第二??field的值是20023109
跟你要insert的那?l??的第二??field的值是相同的
网上搜索分析原因:
可能是字段pid为primary key且auto_increment属性,不能出现重复值。
而我在备份数据时,可能有数据写入破坏了数据表。
尝试了一些方法:
1、数据表部分字段属性丢失 ALTER TABLE `cdb_posts` CHANGE `pid` `pid` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT
2、repair table cdb_posts
均失败!
最后的解决方法:
一般是因为数据表文件损害导致,可用MySQL的修复工具myisamchk 工具修复。
cmd
myisamchk cdb_posts.myi -r
修复数据表就OK了!
解决办法
现在附上解决办法只要把原来的老数据清空导入就可以了。
您可能感兴趣的文章:
1062 - Duplicate entry 33 for key 1
mysql报错#1062 Duplicate entry ‘2147483647’ for key ‘PRIMARY’
深入mysql “ON DUPLICATE KEY UPDATE” 语法的分析
sql实现插入数据主键重复或数据已经存在,则更新这条数据
mysql 6G数据库的导入报错的解决办法
Mysqldump和Source命令用法详解
使用mysqldump备份与还原mysql数据的实例及参数说明
从mysql控制台导入导出数据库的方法介绍
mysql存在则更新方法对比分析
mysqldump数据库备份与还原参数详解