mysql 报错:Got error 30 from storage engine ( 1030 )

本文汇总了多个实例中遇到的MySQL错误1030与1036,提供了详细的错误信息及修复方法,包括使用myisamchk工具修复受损表的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今早登录某论坛,发现报错( 1036 ,1030),找了些资料,也许会有些帮助,方便联系的朋友请转告Admin。--现在看来已经恢复正常了.

 

今早登录某论坛,发现报错如下:
--------------------------
Update Error: UPDATE pw_ipstates SET nums=nums+1 WHERE day='2007-6-1'

The URL Is:
http://teaconner.com/bbs/index.php?

MySQL Server Error:
Table 'pw_ipstates' is read only ( 1036 )
----------------
Update Error: UPDATE pw_threads SET hits=hits+1 WHERE tid='1'

The URL Is:
http://teaconner.com/bbs/read.php?tid=1

MySQL Server Error:
Got error 30 from storage engine ( 1030 )
------------------------

查找解决办法,找到一些有用的资料,供admin参考

常用命令:

SHOW TABLE STATUS LIKE '表名',check table ,REPAIR TABLE

有关资料:

---1---

有办法可以查询具体的 error 含义:

Error: 1030 - Got error 1 from storage engine

你可以使用 mysql自带的 perror 工具程序对 此故障代码进行解析。

这是我用这个工具查询 error 代码 1 的结果:

 

QUOTE:
D:Program Filesrorts>perror 1
OS error code   1:  Operation not permitted
希望这个能对mysql 的用户有帮助,官方原帖:
http://forums.mysql.com/read.php?21,77055,77601#msg-77601


---2---

星期五下班时候都还是好好的,今天突然在点进文章内容时候出现下面问题,请高手指点!!
数据很重要.....非常非常感谢了!!!!!

数据库连接出错:UPDATE p8_article SET hits=hits+1 WHERE aid='232'

Table 'p8_article' is read only
1036

数据库连接出错:UPDATE p8_photo_pic SET hits=hits+1 WHERE id=562

Table 'p8_photo_pic' is read only
1036


zhangbl 2007-04-02 03:51
全部都显示只读,后台也能进去,但无法修改任何信息,我的数据库连接到底出了什么问题,谁能帮帮我!!谢谢啦!!!
 

网络肥狐 2007-04-02 07:21
进入备份数据库
点'p8_article' 和'p8_photo_pic' 右边的修复试试
 

zhangbl 2007-04-02 09:15
Quote:
引用第2楼网络肥狐于2007-04-02 07:21发表的  :
进入备份数据库
点'p8_article' 和'p8_photo_pic' 右边的修复试试


谢谢! 用您的办法已经恢复正常了!十分感谢!! 请问一下是不是数据库表受损了? 这样的问题会经常出现吗?我是菜鸟,感谢您!
 

xipan 2007-04-02 09:20
我的一出过,数据库损坏 多半是读取存储时发生了故障
 ----------

----3------------
以下摘自:http://www.phpwind.net/read-htm-tid-210605-keyword-1030.html
Got error 134 from storage engine ( 1030 )救急!
Query Error: SELECT * FROM bbs_threads WHERE fid='71' AND ifcheck='1' ORDER BY topped DESC, lastpost DESC LIMIT 0,40
MySQL Server Error:
Got error 134 from storage engine ( 1030 )
这个到底是什么问题呀?

数据表损坏了,需要修复三个表
threads
posts
tmsgs

修复使用myisamchk -r命令

我在windows下修复不成功,将数据表拷到bsd 下,再修复,成功。
其中tmsgs表用myisamchk 修复失败后,使用root权限进入mysql尝试repair tables tmsgs;后,再使用myisamchk -r修复成功。
详情请看http://blog.fedora.net.cn


--------------4-----------------------
以下摘自:http://blog.fedora.net.cn
修复MYSQL可能会使用到的实用程序列表:

myisamchk
描述、检查、优化和修复MySQL表的使用程序。因为myisamchk有许多功能,它在其自己的章节中描述。见13 维护MySQL安装。

make_binary_release 制作一个编译MySQL的一个二进制的版本。这能用FTP传送到在ftp.tcx.se网站的“/pub/mysql/Incoming”以方便其它MySQL用户。

msql2mysql
一个外壳脚本,转换mSQL程序到MySQL。它不能处理所有的情况,但是当转换时,它给出一个好起点。

mysql
mysql是一个简单的SQL外壳(具有GNU readline 能力),它支持交互式和非交互式使用。当交互地使用时,查询结果以ASCII表的格式被表示。当非交互地使用时(例如,作为一个过滤器),结果是以定位符分隔的格式表示。(输出格式可以使用命令行选项改变)你可以简单地象这样运行脚本:
shell> mysql database < script.sql > output.tab

如果你在客户中由于内存不足造成问题,使用--quick选项!这迫使mysql使用mysql_use_result()而非mysql_store_result()来检索结果集合。

mysqlaccess
一个脚本,检查对主机、用户和数据库组合的存取权限。

mysqladmin
执行管理操作的实用程序,例如创建或抛弃数据库,再装载授权表,清洗表到磁盘中和再打开日志文件。mysqladmin也可以被用来从服务器检索版本,进程和状态信息。见12.2 管理一个 MySQL 服务器。

mysqlbug
MySQL错误报告脚本。当填写一份错误报告到MySQL邮件列表时,应该总是使用该脚本。

mysqld
SQL守护进程。它应该一直在运行。

mysqldump
以SQL语句或定位符分隔的文本文件将一个MySQL数据库倾倒一个文件中。这是最早由Igor Romanenko编写的自由软件的增强版本。见12.3 从MySQL数据库和表倾倒结构和数据。

mysqlimport
使用LOAD DATA INFILE将文本文件倒入其各自的表中。见12.4 从文本文件导入数据。

mysqlshow 显示数据库,表,列和索引的信息。

mysql_install_db 以缺省权限创建MySQL授权表。这通常仅被执行一次。就是在系统上第一次安装MySQL时。

replace 一个实用程序,由msql2mysql使用,但是有更一般的适用性。replace改变文件中或标准输入上的字符串。使用一台有限状态机首先匹配更长的字符串,能被用来交换字符串。例如,这个命令在给定的文件中交换a和b:
shell> replace a b b a -- file1 file2 ...

safe_mysqld 一个脚本,用某些更安全的特征启动mysqld守护进程,例如当一个错误发生时,重启服务器并且记载运行时刻信息到一个日志文件中。
--------------------------------------------------------------------------------


注意:在修复表之前要拷贝他们,注意备份,切记! 

1.标准的表修复 
a.试着用  --recover选项修复表,可以加上  --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。 
    %  myisamchk  --recover  --quick  table_name 
    or   
    %  myk  --recover  --quick  table_name 
b.如果问题还存在,在试一下上一步命令,但是要忽略  --quick选项,这样允许修改数据文件。 
    %  myisamchk  --recover  table_name 
    or   
    %  myimchk  --recover  table_name 
c.如果还不工作,试一下  --safe-recover  修复方法。但这种方法比普通方法要慢,但能修复  --recover不能修复的问题。 
    %  myisamchk  --safe-recover  table_name 
    or   
    %  myisamchk  --safe-recover  table_name 
如果在myisamchk  or  isamchk  由于一个"can't  create  new  temp  file:file_name"的错误消息在任何一步停止,应该重复该命令并 
加入  --force选项强迫清除临时文件。 

2.如果标准修复失败这样做 
a.定位到包含崩溃表的数据库目录中。 
b.将该表的数据文件移到安全的地方。 
c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件 
    tbl_name.frm重新开始生成新的数据和索引文件。 
    mysql>delete  from  tbl_name; 
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。 
e.在世这样用标准修复方法。 

为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复方法。 
如果由于某些原因没有备份,如果知道create  table  语句,仍然可以恢复该文件: 
a.定位到包含崩溃表的数据库目录中。 
b.将该表的数据文件移到安全的地方。如果想使用用索引的话,还需要把索引文件移走。 
c.调用mysql  发布create  table  语句重建表。 
d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。如果在第2不中移动了索引文件,则也要讲起移回到数据库目录中。 
e.在尝试标准表修复方法。


----5------------


以下摘自:http://blog.fedora.net.cn
 phpwind论坛修复    [ 2006/12/20 03:49 | by banbool ]
论坛版本:phpwind v5.0.1(php+mysql)
      操作系统:window 2K
      故障现象:Update Error: INSERT INTO pw_threads (fid,icon,author,authorid,subject,ifcheck,type,postdate,lastpost,lastposter,hits,replies,topped,digest,pollid,activeid,ifupload,ifreward,rewardinfo,ifsale,anonymous) VALUES ('2','0','xxxx','1','娴嬭瘯宸ュ伐宸ュ伐宸?,'1','0','1166554469','1166554469','haosf','1','0','0','0','0','0','0','','','','0')

The URL Is:
http://bbs.xxx.com/post.php?

MySQL Server Error:
Duplicate entry '10157' for key 1 ( 1062 )

You Can Get Help In:
http://www.phpwind.net
     检查系统日志,发现有如下错误:Got error 126 when reading table './db/pw_threads

     论坛前台显示正常,但发贴时,则会提示错误。

    故障解决过程:使用myisamchk 尝试解决,在windows下提示对该表无权限,于是将数据库中的所有表,拷贝到一台freebsd环境的机器,创建一个数据库,将拷贝的所有数据表放到新创建的数据库下,再使用myisamchk -r修复
>myisamchk -r /db/pw_posts
>myisamchk -r /db/pw_threads
>myisamchk -r /db/pw_tmsgs
提示信息类似这样:
Fixed index 1
Fixed index 2
... ...
Fixed index N
就表示修复完成了。
我在修复pw_tmsgs表时,提示错误(打印到屏幕的信息中带ERROR字样),于是进入mysql命令行,使用repair tables尝试修复
mysql>use db;
mysql> repair tables pw_tmsgs;
没有提示错误,表示修复成功,退回到系统命令行,再尝试使用myisamchk -r 修复
>myisamch -r /db/pw_tmsgs
修复成功

将修复后的表,拷贝回原数据库文件夹。(需要暂停MYSQL服务)
论坛功能恢复正常。
   因本人在网上找不到相关详细资料,所以写出来,希望对碰到这个问题的朋友有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值