今天对论坛进行搬家,论坛使用的是discuz系统,搬家的时候直接把备份的数据库文件复制到mysql下的data目录,等一切工作完成打开网站的时候却提示:Can't find file: './xxxxx/common_member.frm' (errno: 13)这样的错误,其中数据库我用xxxxx代替了,
还有这些提示:SELECT * FROM common_syscache WHERE `cname` IN('announcements','onlinelist','forumlinks','heats','historyposts','onlinerecord','userstats','diytemplatenameforum','plugin','pluginlanguage_system','setting','style_default','cronnextrun')
遇到common_member.frm' (errno: 13)错误该怎么办呢?
首先到数据库文件里查看是不是存在common_member.frm这张表,如果不存在说明表丢失了,如果表存在,那么有可能是数据库权限问题,小编我的情况就是如此,那么怎么解决mysql权限问题呢?
如果你的服务器是windows2003,那么参考下面的方法:
首先找到你的数据库文件,如果你的mysql是默认安装的,那么路径一般在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data,如果你是老司机的话应该知道mysql数据库的路径,不懂可以到网上查。
找到数据库后进入全选所有的表,然后鼠标右键选择“属性”
在弹出的属性对话框中点击“安全”然后“添加”
在“选择用户或组”的对话框中点击“高级”
然后点击“立即查找”,下面会在搜索结果中显示当前服务器所有的账户,我们要选择mysql的账户然后确定
接下来就是给mysql账户赋予权限了,我这里给的是完全控制权限,然后确定
接下来再打开网站试试,是不是可以访问了
注意事项:如果想通过拷贝data目录下数据库文件进行备份,需要在停止mysql后或者停止iis后进行操作,一般没问题,但是如果在没停mysql ,而且网站又在运行并且正常访问的情况下,这样备份数据百分之九十以上的几率会有问题