最近因为有台服务器(A)内存频频告急,检查了一下,发现是MySql占用的资源太多,比同服务器的Mssql多近20倍的样子(但MSSQL占的CPU比MYSQL要多),于是打算把MYSQL迁到另外一台服务器(B)上。
B很早以前就已经装好了MYSQL,但是服务一直处于停用状态,于是我直接把A服务器下面的MYSQL相关数据库拷贝过去,启动服务。试运行了一下,发现其中有一个数据库有异常。
登录PHPAdmin可正常查看数据库,表名等信息,但是查询表数据时提示: Incorrect information in file: '.\xxxxxx.frm'.
最开始试了好几个网友提供的解决方案,包括删除日志,都不行,后后在某些资料发现有人提到与InnoDB引擎有关,只要将引擎切换回MyISAM即可。
于是试做了一下,发现问题成功解决。MYSQL切换引擎代码如下:
alter table `表名` ENGINE=MYISAM;
这代码需要一个表执行一次,因为籹据库中表比较多,而且我对MySql不太熟,也不知道它是否支持for,于是在程序中批量生成了一下SQL语句,执行,问题解决。