阿里云的服务器用了好今年了,老版本的系统升级php经常出现各种各样的问题,索性把服务器系统重新升级了,同时使用操作方便快捷的wdcp面板。在网站搬家的时候dz出现了mysql ERROR 1017:Can’t find file: ‘/xxx.frm’错误。
大概意思就是找不到数据库文件,但实际上这个文件是在数据库的,我是使用root账户使用命令 \cp -rf /A/. /B/ (A和B改成自己对应的路径就可以了,此命令的意思是:把A文件夹下的所有文件复制到B文件夹,直接覆盖不提示)把老的数据库文件直接复制到新的数据库文件。
网上查了一下,出现这个错误的原因不是’/xxx.frm’这个文件不见了,而是这些文件的权限应该要是mysql。在这点我犯了两个错误:
1、复制的时候没有关闭mysql服务器。
2、用root账户复制,所以数据库文件的权限全部是root账户的了。
解决办法为:
cd到xxx.frm文件所在目录下,执行一下命令:chown mysql.mysql * 将所有文件的权限都改过来就可以了!
一、
解决这个问题后,没有出现mysql ERROR 1017的错误了,但是发现登陆DZ后台的时候又提示某些文件找不到,原来也同样是文件目录所属者造成的。
解决办法原理同样为:
cd到网站所在目录下,执行一下命令:chown www:www -R * 将所有文件的权限都改成www就可以了!
二、
还有一个问题就是,DZ用的GBK的编码,WP用的UTF-8编码。解决DZ问题的时候我将PHP的配置文件php.ini 改成了GBK以支持DZ。没想到后面WP的文章和页面出现了502的错误。
在解决DZ问题后,再把GBK改回UTF-8问题就解决了!UTF-8是国际通用的编码方式,应该访问GBK也没什么大问题吧,我这样想。