修复损坏的PHP网站数据表

站长空间

在PHP网站系统将一些旧文章从数据库中删除后,再编辑新文章时后台系统会提示这样的错误:

MySQL Query:select count(*) as num from phpcms

_article …… ……

MySQL Error:Can't open file: 'phpcms_article.MYI' (errno: 145)

MySQL Errno:1016

Message:MySQL Query Error

比如在PHPCMS网站系统中删除某些文章后就会遇到上述情况,此时无论是新增文章还是编辑旧文章后台管理界面提交发布都会看到错误语句,无法正常操作。

一、错误原因分析

产生该错误的原因可能是管理人员在进行旧文章删除操作时操作不当,结果致使数据表损坏。一般的PHP网站系统后台程序中都设置了修复数据表的功能,可以用它恢复受损的数据表。不过有的网站系统虽然有这样的功能,但还是无法修复损坏的数据表,因此大家最好是进入Web服务器上的PHPMyAdmin程序中进行修复操作。

二、修复受损数据表

1.安装PHPMyAdmin程序

大部分站长都是租赁虚拟主机建站,所以感觉不能方便地登录Web服务器,在PHP运行环境下安装PHPMyAdmin。其实,PHPMyAdmin在虚拟主机上的安装很简单,首先下载一个PHPMyAdmin MySQL管理器文件(地址:http://www.phpmyadmin.net/home_page/index.php),解压后将源文件夹内的“PHPMyAdmin/libraries”下的“config.default.php”复制到根目录,然后把“config.default.php”改名为 “config.inc.php”,或者将根目录下的“config.sample.inc.php”改名为config.inc.php即可。

下面以拷贝“config.default.php”修改其内容为例,将其中的“$cfg['PmaAbsoluteUri']= '域名'”语句修改将上传到空间的PHPMyAdmin的网址,例如:$cfg['PmaAbsoluteUri'] = 'http://www.***.com/phpmyadmin/';

再把$cfg['Servers'][$i]['user'] = 'MySQL用户名'; $cfg['Servers'][$i]['password'] = 'MySQL密码';代码对应的参数设定为PHPMyAdmin连接MySQL的用户名和密码

以及以下两段代码设定为:

$cfg['Servers'][$i]['auth_type'] = 'cookie'

$cfg['blowfish_secret'] = 'localhost'

设定完成后,将PHPMyAdmin这个文件夹上传到自己的Web虚拟主机根目录下。

2.登录PHPMyAdmin修复数据表

现在可以在浏览器打开“http://域名/PHPMyAdmin”

网址输入虚拟主机上网站MySQL数据库的用户名和密码登录了(图1)。

32-f18-2.jpg
图1

登录后找一个可以执行SQL语句的地方,比如PHPMyAdmin的SQL执行框,或者连接同一数据库的PHPCMS的后台里面的SQL执行框,输入“REPAIR TABLE `phpcms_article`”再点击“执行”按钮,就能修复这个“phpcms_article”数据表(图2)。如果有其它数据表损坏,照此语句修复那个即可。

32-f18-3.jpg
图2