mysql #1062 –Duplicate entry '1' for key 'PRIMARY'


一般是因为数据表文件损害导致,可用MySQL的修复工具myisamchk 工具修复。
cmd
myisamchk cdb_posts.myi -r

方法一,直接在命令模式下修改

1、myisamchk

修复mysql数据库,还有一个命令:mysqlcheck

mysqlcheck -a -c -o -r –all-databases -uroot -p //这条命令是即可最佳化所有db数据库。

参数的意义如下:
-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren’t unique

如果是在win主机下,修复指定的表,使用:mysqlcheck -o -r 数据库名称 -u root -p,在提示输入密码的框中,输入mysql的root管理密码,mysqlcheck即会对数据库进行检测修复

实例

使用 myisamchk 必须暂时停止 MySQL 服务器。例如,我们要检修 discuz 数据库。执行以下操作:
# service mysql stop (停止 MySQL );
# myisamchk -r /数据库文件的绝对路径/*MYI
# service mysql start
myisamchk 会自动检查并修复数据表中的索引错误。

2、mysqlcheck

使用 mysqlcheck 无需停止 MySQL ,可以进行热修复。操作步骤如下:# mysqlcheck -r discuz.*

注意,无论是 myisamchk 还是 mysqlcheck ,一般情况下不要使用 -f 强制修复,-f 参数会在遇到一般修复无法成功的时候删除部分出错数据以尝试修复

方法二,利用phpmyadmin快速修改损坏mysql

1、登录 phpMyAdmin,进入 phpMyAdmin 数据列表页面;

myisamchk修复损坏的MySQL数据库方法-mysql myisamchk

2、选择一个数据表前的方框;

myisamchk修复损坏的MySQL数据库方法-mysql数据库表损坏

3、页面下方“选中项”下拉选择“修复表”;

myisamchk修复损坏的MySQL数据库方法-mysql数据库损坏 恢复


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM