unix 操作系统下直接将数据库文件拷贝移而产生这个错误【解决办法

源码技巧14年前 (2010-08-18)12550
[b]错误编号:[/b]145
[b]问题分析:[/b]
这种情况是不能打开 %s.MYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
[b]解决方法:[/b]
1、修复数据表
可以使用下面的三种方式修复数据表:(第二种方法仅适合独立主机用户)
1)通过 tools.php 修复,这个文件的下载地址为:[url=http://www.discuz.net/thread-1024315-1-1.html][color=#0097cc]http://www.discuz.net/thread-1024315-1-1.html[/color][/url],然后上传到服务器的相应程序目录下,如通过 http://站点地址/tools.php 访问;
2)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL安装目录的 bin 目录下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为: [list=1]
[*]myisamchk -r 数据文件目录/数据表名.MYI;
[/list]
[i]复制代码[/i]
3)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上三种修复方式在执行前一定要备份数据库。
2、修改文件的属组(仅适合独立主机用户)
1)复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。

“unix 操作系统下直接将数据库文件拷贝移而产生这个错误【解决办法” 的相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。