今天早上打开论坛发现无法发帖,发帖后提示?Discuz! Database Error(1062) Duplicate entry ‘0’ for key ‘invisible’.
后来发现,原来是数据库表崩坏造成的。
我们进入shell,然后进入到mysql的命令行模式(如果是网页版的phpmyadmin,可能会因为网页超时而出现错误):
# mysql -uroot -p ? ? ? ? ? ? ?#这里注意必须要有权限进行表的修复。
mysql> use database;
mysql> repair table pre_forum_thread;
mysql> repair table pre_forum_threadaddviews;
+———————————+——–+———-+————————————————+
| Table | Op | Msg_type | Msg_text |
+———————————+——–+———-+————————————————+
| xjjbbs.pre_forum_threadaddviews | repair | warning | Number of rows changed from 1196698 to 1196658 |
| xjjbbs.pre_forum_threadaddviews | repair | status | OK |
+———————————+——–+———-+————————————————+
2 rows in set (0.92 sec)
mysql> repair table pre_forum_post;
+———————–+——–+———-+————————————————+
| Table | Op | Msg_type | Msg_text |
+———————–+——–+———-+————————————————+
| xjjbbs.pre_forum_post | repair | warning | Number of rows changed from 1991044 to 1991046 |
| xjjbbs.pre_forum_post | repair | status | OK |
+———————–+——–+———-+————————————————+
2 rows in set (1 min 14.96 sec)
依次对坏的表进行修复即可~