IT_man 發表於 2015-2-19 10:30:35

如何修復MYSQL 的table

本帖最後由 IT_man 於 2017-2-24 17:18 編輯

觀看帖子內容時 ,出現 error message :

(144) Table './avyahoo_dx32/forum_threadaddviews' is marked as crashed and last (automatic?) repair failed
SELECT * FROM forum_threadaddviews WHERE `tid` IN('14072','14070','14068','14067','13951','13890','13888','13883','13881','13879','13877','13875','13747','13728','13726','13619','13613','13607','13601','13596')
PHP Debug

No.      File      Line      Code
1      forum.php      71      require(%s)
2      source/module/forum/forum_forumdisplay.php      846      discuz_table->fetch_all(Array)
3      source/class/discuz/discuz_table.php      110      discuz_database::query(%s)
4      source/class/discuz/discuz_database.php      136      db_driver_mysql->query(%s, false, false)
5      source/class/db/db_driver_mysql.php      153      db_driver_mysql->halt(%s, %d, %s)
6      source/class/db/db_driver_mysql.php      224      break()

修復方法:

一般服务器意外重启或者安装插件都会造成数据表的损坏,导致论坛无法访问或者提示数据库报错,出现这种问题时,需要修复数据库,本教程主要针对数据表损坏的修复操作进行简单介绍。
1、使用 Discuz! Tools 工具修复数据库
Discuz! Tools 2.1 下载地址:http://www.discuz.net/thread-761181-1-1.html
最新版Discuz! X1請看這裡 : http://www.discuz.net/thread-1667317-1-1.html


使用方法:

将 tools.php 文件上传到论坛根目录下
打开 tools.php 文件,在文件头部找到:
$tool_password = ''; // ☆★☆★☆★ 请您设置一个工具包的高强度密码,不能为空!☆★☆★☆★ 如果未设置密码则访问该文件如图所示:

在浏览器中如下运行该文件:http://你的论坛地址/tools.php ,如图所示提示输入密码:

输入密码后进入该系统如图所示:

检查或修复 Discuz! 数据库,如图所示:


点击“检查并尝试修复数据库1次”,检查结果如图所示:


2、使用 phpMyadmin 修复数据的方法
进入论坛数据库,然后选择要修复的表,在页脚下拉框选择“修复”即可。
3、独立主机的修复数据方法
修复前请一定将 MySQL 服务停止。修復好再啟動
如果是 Win 主机,打开命令行方式,然后进入到 MySQL 的 bin 目录。

执行
myisamchk -r d:\MySQL\data\discuz\*.MYI

其中 d:\MySQL\data\discuz\ 换成您的数据库所在路径。

如果是类 Unix 主机,直接使用 myisamchk -r 数据库目录 \*.MYI 。修復後可能會遺失一些紀錄,所以定期備份很重要
Ex:service mysqld stop
myisamchk -r /var/lib/mysql/avyahoo_dx32/pred32_forum_threadaddviews.MYI

service mysqld start


頁: [1]
查看完整版本: 如何修復MYSQL 的table