- 精华
- 阅读权限
- 180
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2010-1-30
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
本帖最后由 阿童木 于 2010-4-25 11:05 编辑
解决数据库 Table ‘xxx’ is marked as crashed and should be repaired 错误的参考
这些东西都是从其他地方找来的一些解决MYSQL数据库这个错误的方法,并不一定适用于神迹数据库,仅仅供参考一下,具体的解决方法还是需要摸索。也可能其中任意方法都可以适用于本数据库。我暂时没有条件测试,有条件的去测试一下,有望解决数据库报此错误的问题。
(一)
昨晚浏览自己的Blog的时候,突然发现所有页面都无法显示,到后台查看的时候,发现一个”Table ‘xxx’ is marked as crashed and should be repaired” 的错误。连忙上网搜索,原来修改这个严重的错误很简单:
1. 进入管理mysql的phpmyadmin
2. 在左则选中自己的数据库
3. 在右则勾选中错误信息中的那个’xxx’表
4. 滚动屏幕到下面,有个下拉菜单(With selected:),选择”Repair table”
修改之后,并没有发现有什么数据损失,连忙备份了一份数据库到邮件里面,备份还是很重要的!
(二)
现象:
mysql> use yourealcn
Database changed
mysql> select user,company from biz_user where commend='1' order by regtime desc,checked desc limit 0,5;
ERROR 145 (HY000): Table './yourealcn/biz_user' is marked as crashed and should be repaired
mysql> exit
使用命令myisamchk修复数据库的MYI文件即可
# /usr/local/mysql5/bin/myisamchk -c -r /bak/lib/mysql/yourealcn/biz_user.*
myisamchk: error: '/bak/lib/mysql/yourealcn/biz_user.frm' is not a MyISAM-table
---------
myisamchk: error: '/bak/lib/mysql/yourealcn/biz_user.MYD' is not a MyISAM-table
---------
- recovering (with sort) MyISAM-table '/bak/lib/mysql/yourealcn/biz_user.MYI'
Data records: 20414
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
(三)
Caused by: java.sql.SQLException: Table '表名' is marked as crashed and should be repaired
解决办法:
./myisamchk -c -r 数据库表MYI文件的路径(例如:/home/mysql/var/crawlerfeedsky/aaaa.MYI)
如果还不行,就-f 强制修复
(四)
今天上服务器一看,发现网页错误,无法连接数据库服务器。mysql服务自己down掉了,然后重新启动服务器,发现网页无法打开,提示: [mysql]Table tblName is marked as crashed and should be repaired
Mysql提示tblName表格已损坏,需要修复,解决方法:
进入到对应的数据库目录:
cd /var/lib/mysql/dbname
使用myisamchk修复:
shell> myisamchk -r tblName
(五)
我用的修复命令是:myisamchk -r bbsthreads
其中bbsthreads是我出问题的表名,当然使用这个命令还得进入mysql你所出问题的数据库的表的存放路径,具体更详细的命令可以看帮助:myisamchk --help;
如果用以上命令你不能解决问题请看后面,后面的内容是我转载的。
我的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为:
Table '.\dedecmsv4\dede_archives' is marked as crashed and should be repaired
提示说cms的文章表dede_archives被标记有问题,需要修复。于是赶快恢复历史数据,上网查找原因。最终将问题解决。解决方法如下:
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI
然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。
问题分析:
1、错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
问题的编号为145
2、问题解决办法。
当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的。
这三种修复方法如下所示:
% myisamchk --recover --quick /path/to/tblName
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName
第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题。
检查和修复MySQL数据文件
如果上面的方法无法修复一个被损坏的表,在你放弃之前,你还可以试试下面这两个技巧:
如果你怀疑表的索引文件(*.MYI)发生了不可修复的错误,甚至是丢失了这个文件,你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上,使用下面的命令删除表的内容:
mysql> DELETE FROM tblName;
在删除表的内容的同时,会建立一个新的索引文件。退出登录并重新关闭服务,然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。最后,使用myisamchk执行标准的修复(上面的第二种方法),根据表的数据的内容和表的格式文件重新生成索引数据。
如果你的表的格式文件(tblName.frm)丢失了或者是发生了不可修复的错误,但是你清楚如何使用相应的CREATE TABLE语句来重新生成这张表,你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题,使用上面的方法重建一个新的)一起使用。首先制作一个数据和索引文件的拷贝,然后删除原来的文件(删除数据目录下有关这个表的所有记录)。
启动MySQL服务并使用当初的CREATE TABLE文件建立一个新的表。新的.frm文件应该可以正常工作了,但是最好你还是执行一下标准的修复(上面的第二种方法)。
3、myisamchk工具介绍(见mysql的官方手册)
可以使用myisamchk实用程序来获得有关数据库表的信息或检查、修复、优化他们。myisamchk适用MyISAM表(对应.MYI和.MYD文件的表)。
调用myisamchk的方法:
shell> myisamchk [options] tbl_name ...
options指定你想让myisamchk做什么。在后面描述它们。还可以通过调用myisamchk --help得到选项列表。
tbl_name是你想要检查或修复的数据库表。如果你不在数据库目录的某处运行myisamchk,你必须指定数据库目录的路径,因为myisamchk不知道你的数据库位于哪儿。实际上,myisamchk不在乎你正在操作的文件是否位于一个数据库目录;你可以将对应于数据库表的文件拷贝到别处并且在那里执行恢复操作。
如果你愿意,可以用myisamchk命令行命名几个表。还可以通过命名索引文件(用“ .MYI”后缀)来指定一个表。它允许你通过使用模式“*.MYI”指定在一个目录所有的表。例如,如果你在数据库目录,可以这样在目录下检查所有的MyISAM表:
shell> myisamchk *.MYI
如果你不在数据库目录下,可通过指定到目录的路径检查所有在那里的表:
shell> myisamchk /path/to/database_dir/*.MYI
你甚至可以通过为MySQL数据目录的路径指定一个通配符来检查所有的数据库中的所有表:
shell> myisamchk /path/to/datadir/*/*.MYI
推荐的快速检查所有MyISAM表的方式是:
shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI
如果你想要检查所有MyISAM表并修复任何破坏的表,可以使用下面的命令:
shell> myisamchk --silent --force --fast --update-state \
-O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M \
/path/to/datadir/*/*.MYI
该命令假定你有大于64MB的自由内存。关于用myisamchk分配内存的详细信息,参见5.9.5.5节,“myisamchk内存使用”。
当你运行myisamchk时,必须确保其它程序不使用表。否则,当你运行myisamchk时,会显示下面的错误消息:
warning: clients are using or haven't closed the table properly
这说明你正尝试检查正被另一个还没有关闭文件或已经终止而没有正确地关闭文件的程序(例如mysqld服务器)更新的表。
如果mysqld正在运行,你必须通过FLUSH TABLES强制清空仍然在内存中的任何表修改。当你运行myisamchk时,必须确保其它程序不使用表。避免该问题的最容易的方法是使用CHECK TABLE而不用myisamchk来检查表。
===================================================================================================
神迹怪物经验修改
用DBC2000读取 端中 GS里的 Envir DB 然后修改经验,最多不要超过 32747不然没会出错
========================================================================================================
神迹外网架设最新5个问题
请问架设外网神迹:
一、需要把D:\完整神迹\web\175目录下的
GDIP.txt修改为
127.0.0.1
192.168.0.186(此是外网IP) 需要修改!
二、我是路由器上网,要做端口映射吗,如何做,谢谢!要做哪几个端口映射,以及做映射后如何修改服务端中的IP?
三、神迹支持域名吗,可以用花生壳架设吗,我是电信ADSL动态IP。这个等我用路由器架设成功外网后再测试下!
四、服务器名字可以直接更改吗?可以更改,已经成功!
五、做外网只要在内网架设成功的基础上就行吧,无需再修改数据库什么的吧?对,已经测试成功外网。
============================================================================================
mySQL2000不会附加数据的进来看
本人用的是SQL2000个人版,至于别人说的什么企业版什么的都一样!
安装的时候我就不多说了!最主要就你要安装数据组件,一直下一步选项到混合身份密码(自己最好设一个简单的密码!)如安装不成功,说明你安装过SQL没删除掉,先从控制面版删除,在手动删除,就在C盘--Program Files---Microsoft SQL Server。把这个文件甲直接删除,如删除不掉说明你正在使用SQL,那就重器电脑在删除!。。。。
说了那么多废话!
点开始--程序--microsoftSQLserver--企业管理器--打开控制台根目录---打开SQLserver组-右键点击数据库文件--所有任务--附加数据库
这是一个过程。添加的数据就是“完整神迹端”下的DATA文件里的数据!就一个数据文件,添加好了!就可以关闭SQL了!
MySQL数据库也就搞定了!对于好多说打不开loginserver,其实大部分就是2个原因,一个就是加密没搞好!在一个就是SQL数据没附加好
=======================================================================================================
让角色出生在天机城中的设置
让角色出生在天机城中的设置
步骤如下:
1:打开gameserver.ini,把BornMapCode=XD-001改为BornMapCode=0
2:使用附件中的MapInfo文件替换老的MapInfo文件
地图文件
================================================================================================
神迹开外网的IP设置说明
一、架设所需工具:
1)Sql2000 or Sql2005
2)MySql5.0 or High version
3)IIS或者我打包里面的"迷你ASP服务器"
二、架设方法
1)在M$ SQL中附加data目录中的数据库,并把服务端中的MySQL_Server_5.0目录放置于D盘根目录下
2)用我打包的服务端中的“迷你ASP服务器"运行WEB目录下的东西
3)打开Mud175文件夹进行设置,以下按每个目录进行说明
DBServer----!addrtable.txt 修改IP第一个为127.0.0.1,第二个为你的外网IP
---!rungate.txt 同上修改其中IP第一个为127.0.0.1,第二个为你的外网IP
---dbsrc.ini 修改其中IP为127.0.0.1,按照你服务端的存放位置修改目录部分的路径
---GuildTools.ini 修改里面的IP、MySQL的用户(默认为root)、MySQL的安装目录
LoginGate----Config.ini 修改里面的IP第一个为你的外网IP,第二个为127.0.0.1
---mirlogin.ini 修改里面的IP为你的外网IP
LoginSrv----!addrtable.txt 修改IP第一个,第二个为127.0.0.1,第三个为外网IP
---!serveraddr.txt 修改IP为外网IP
---logsrv.ini 修改其中IP为127.0.0.1,按照你服务端的存放位置修改目录部分的路径
---!dblink.txt 重点是这个文件的修改,方法如下
1)先打开该文件复制里面的所有内容,运行该目录中的神迹专用.exe
2)将上个步骤中复制内容粘贴到"原密文"文本框中,点击"解密原密文"注意:密码为明码,而不是32位加密
3)在"加密"文本框中修改你的M$SQL数据库实例、附加的数据库名及帐号和密码并点击"加密为密文"
4)复制上一个步骤中"加密"文本框中的内容并粘贴到!dblink.txt保存
NewGS---------Config.ini 修改里面的IP为你的外网,只修改IP其他不要动
NewRunGate----mirgate.ini 修改里面的IP为127.0.0.1
---mirrungate.ini 修改里面的IP为127.0.0.1
SelGate-------selgate.ini 修改里面的IP为127.0.0.1
web-----------config.html 修改里面的IP为你的外网
---gdip.txt 修改里面的IP为你的外网
---GSIP.txt 修改IP第一个为127.0.0.1,第二个为你的外网IP
---Servertable.ini 修改里面的IP为你的外网
web--gs0-----GameServer.ini 修改前面5个IP为127.0.0.1 ,最后两个为你的外网IP
4)服务端开启顺序,确保上面的步骤无误的情况下,按照以下顺序进行:
a、运行MySQL_Server_5.0中的"启动MySQL.bat"
b、运行DBServer目录中的testdb.exe
c、运行LoginGate目录中的LoginGate新.exe
d、运行LoginSrv目录中的loginserver.exe
e、运行NewGs目录中的NewGs.exe
f、运行NewRunGate目录中的anti_speeding_Rungate.exe
g、运行SelGate目录中的SelchrGate新.exe
5)进入游戏 a、先安装游戏客户端,下载地址http://dl.sdo.com/dlc/s3d/S3D-v1.80.01-20060308.exe
1.80to1.81补丁http://dlc2.sdo.com/FTP/s3d/20070813/1/s3d1.80.01to1.81.00.exe
b、修改游戏客户端下的game.ini,用以下内容替换
[Config]
ServerIP=127.0.0.1
ServerPort=7000
GroupNum=1
Group0=征战九州
GroupNick0=征战九州
FeedBack=bug.woool.com
FDFileName=bugreportshenji.asp
Help=http://210.51.29.100:8256/bangzhu.txt
Act=http://210.51.29.100:8258/huodong.txt
Website=http://www.s3d.com.cn/
Support=http://61.172.247.77/sign/t01.php
Cloth=12
Hair=8
Weapon=5
TipColor=2281701376
DefaultLight=4294967295
SkipCheck=Yes
Area=征战九州
c、将客户端下的Client.dat改为Client.exe并运行进入游戏,帐号游戏中注册
========================================================================================
神迹GM命令文字版
【GM命令】
加宠物蛋经验 @addpeteggexp
十二生肖测试4 @gdeqsptran
十二生肖测试3 @gdclesptran
十二生肖测试2 @gdexespcmd
十二生肖测试1 @gdissptran
重读生肖变身 @readspringtransform
重读生肖发奖 @readspringprize
重读限制地图 @readlimitmap
重读出矿概率 @readdigpossi
重读分身怪物 @readmonstersplit
查询宝图信息 @tryquerymapinfo
查询宝图名字 @tryqueryname
查询宝图坐标 @tryquerycoord
开寻宝图名字 @trygenmapname
开寻宝图坐标 @trygencoord
测试寻宝 @tryexplore
得到一个测试宝图 @getoneexmap
从监狱中释放玩家 @unprison
将玩家投入监狱 @prison
停止十二生肖活动 @endspring
开始十二生肖活动 @startspring
停止赤眼魔活动 @endcym
开始赤眼魔活动 @startcym
结束825活动 @end825
开始825活动 @start825
重置新武器属性 @reset200all
设新武器隐藏属性 @set200hide
加新武器升级次数 @add200uptimes
导入合法语句文件 @loadenablesens
停止中秋猜迷 @endautquiz
开始中秋猜迷 @stautquiz
导入中秋猜迷文件 @loadautumnquiz
添加玩家的菩提子数目 @addputi
设置菩提仙境活动双倍爆率 @doublebouse
设置菩提仙境活动单倍爆率 @singlebouse
关闭菩提仙境活动 @endputi
开始菩提仙境活动 @startputi
结束淘宝活动 @endfiltmine
开始淘宝活动 @startfiltmine
读允许的特殊奖励 @readskypassprize
设置天关特殊奖励 @giveskypassprize
停止闯天关活动 @endskypass
开始闯天关活动 @startskypass
查询关系 @queryrelation
解除师徒 @breakteacher @breakmarry
拜师 @teacher @marry
查询声望值 @querypoint
增加声望值 @addpoint
改名 @changename
取消平衡玩家速度 @unlimitspeed
平衡玩家速度 @limitspeed
锁定 @changelock
染色 @clothescolor
跟踪 @trace
查指定点的信息 @debuginfo
更改装备持久力 @equipdura
清除指定怪物 @clearspecialmob
清除怪物 @clearmob
清除物品 @clearitem
驯马 @recallhorse
下马 @offhorse
上马 @uphorse
改变天气 @changeweather
增加经验 @addexp
改变颜色 @color
检查配置 @checkremoteconfig
列出Ip @listgdip
删除Ip @deletegdip
增加Ip @addgdip
调整性别 @adjustgender
调整技能 @adjustmagiclevel
调整职业 @adjustjob
更换城主 @king
取消GM攻击模式 @nofire
GM攻击模式 @fire
删除攻城战 @deletesabukwar
添加攻城战 @war
重新加载任务 @reloadtask
重新加载NPC @reloadnpc
增加金币 @gold
调整等级 @levelup
造物品 @make
重新加载行会 @reloadguild
重载沙巴克 @reloadsabuk
查询沙巴克 @checksabuk
设置行会聊天标志 @setguildshutup
修改行会等级 @changeguildlevel
修改行会经验 @changeguildexp
查询攻城战 @querysabukwar
删除技能 @delskill
调整技能等级 @magicup
查询装备 @whitch
查询城内金币 @howmany
踢人 @gameover
删除物品 @delitem
释放PK @releasepk
设置PK值 @setpk
查询PK值 @pk
开始拯救蓝无机 @startwuji
开始OX头脑风暴 @startoxstorm
GM使用物品 @gmuseitem
查询玩家积分记录 @querylotusrecord
清除突破极限排名 @clearchallengerank
清除夺命罗刹排名 @clearretortrank
清除冰临绝境排名 @clearsurviverank
GM清除玩家冰凉值 @clearplayercoolvalue
清除服务器冰凉值 @clearcoolvalue
GM查询服务器冰凉值 @getcoolvalue
GM增加服务器冰凉值 @addcoolvalue
结束押镖活动 @endescort
开始押镖活动 @startescort
增加元宝数量 @addyuanbao
查询充值卡是否已充值 @querycard
查询元宝系统状态 @queryyuanbao
关闭元宝系统 @closeyuanbao
打开元宝系统 @openyuanbao
根据角色名查询元宝数 @jueseyuanbao
根据帐号查询元宝数 @zhanghaoyuanbao
查看uu订单 @checkuu
删除所有彩票中奖信息 @delalllotteryinfo
根据日期删除彩票中奖信息 @dellotteryinfobydate
根据玩家登陆ID删除彩票中奖信息 @dellotteryinfobyuserid
根据玩家名字删除彩票中奖信息 @dellotteryinfobyuser
根据日期查询彩票中奖信息 @getlotteryinfobydate
根据玩家登陆ID查询彩票中奖信息 @getlotteryinfobyuserid
根据玩家名字查询彩票中奖信息 @getlotteryinfobyuser
查询彩票活动设置时间 @getlotterytime
设置彩票第三次开奖时间 @setthirdlotterytime
设置彩票第二次开奖时间 @setsecondlotterytime
设置彩票第一次开奖时间 @setfirstlotterytime
设置彩票活动开始时间 @slt
重新导入答题配置文件 @reloadquestion
清除封号 @clearhonor
设置封号 @sethonor
查询gs系统时间 @getlocaltime
把猜谜数据导到文件中 @writeguessresulttofile
清除猜谜数据 @clearguesshistory
清除送礼和祝福信息 @cleargiftandbless
加载炼狱勇士 @reloadmagicmirror
读取互联星空角色文件 @readhlxk 查询魔幻镜NPC @magicmirrornpcpoint
查找怪物信息 @querymonster
造说话怪物 @speakingmob
NPC现身 @npcshow
查询NPC @querynpc
查询调查问答结果 @getresearchresult
清除调查问答结果 @clearresearchresult
查询怪物爆率 @monsterburst 清除赛马记录2 @racingclear2
查询赛马选手得分2 @racingscore2 结束赛马2 @racingend2
开始赛马2 @racingbegin2
清除赛马记录 @racingclear
查询赛马选手得分 @racingscore
结束赛马 @racingend
开始赛马 @racingbegin
花瓣雨 @flowerrain
清空结婚列表 @clearmarrylist
查询结婚列表 @querymarrylist
查询怪物活动 @querymobfight
清除怪物活动 @clearmobfight
结束怪物活动 @endmobfight
开始怪物活动 @startmobfight
取得马票金额 @getracemoney
设置马票金额 @setracemoney
结束杀怪 @querykillmob
开始杀怪 @startkillmob
除夕 @chuxi
男女对抗 @pkall
批量造怪物 @somemob
取消观众模式 @normal
观众模式 @look
升级 @levelup2
更换职业 @changejob
更换性别 @changesex
更换头发 @mao
查询玩家信息2 @sdif2
查询玩家信息 @who
自动比武结果 @pointautofight
清除争霸赛结果 @clearpoint @pointguild
争霸赛结果 @point
终止行会争霸 @end
开始门派争霸赛 @startguildcontest @startstop
门派赛开始 @startpk
开始行会争霸 @start
查询地图编号 @mapno
观察模式 @gamemaster
送周围玩家 @bigkick
送某一玩家 @kick
释放禁言 @noslent
禁言 @silent
召唤宠物 @petgohere
查询人数 @howmuch
无敌模式 @superman
查询地图人数怪物数 @howmuch2
召唤玩家2 @gohere2
召唤玩家 @come
定点移动 @sdmoveto
随机移动 @gogo
放Midi @midi
造怪物攻城 @mypet 范围内造怪物2 @rangemob2
范围内造怪物 @scall
造怪物 @call 查询周围怪物 @what
读取uu道具配置文件 @loadgoodsconfig
读取消息配置文件 @loadmsgconfig
读取宝盒配置文件 @loadtreasureconfig
隐身模式 @yinshen==================================================================================================
神迹设置gm 的方法
web\175\GDNames.txt 在里面添加帐号名称,人物角色必需和帐号名称一样 |
|