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了!
解决办法
现在附上解决办法只要把原来的老数据清空导入就可以了。