近日因为一个特殊需要,对mysql进行升级。 因为担心数据迁移的差别大没有选择5.5。 而且服务器需要运行,不能拖的时间太长。
下载了官方win 32位安装版。安装的时候并没有停止原先的 mysql 5.0, 过程中没有冲突。安装版安装完,系统变量里的“path”已经改变了。只是在最后检查启动的时候,必须停止原Mysql服务。
我将原来的 data目录下文件复制到了新的 数据目录,启动服务提示了
“系统出错, 发生系统错误 1067, 进程意外终止. 解决方法”。
于是在 my.ini 末尾加上
log-error=
在 data/ 下的 .err 文件里看到了如下错误
140212 14:01:10 [Note] Plugin 'FEDERATED' is disabled.
D:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Table 'mysql.plugin' doesn't exist
140212 14:01:10 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
140212 14:01:10 InnoDB: Initializing buffer pool, size = 70.0M
140212 14:01:10 InnoDB: Completed initialization of buffer pool
……
这个错误网上是有很多说法的, 运行mysql_upgrade 也不行。
我临时将 ib_logfile0 、 ib_logfile1 文件移除, 发现服务能够启动了。 原因可能出在其中之一
对于复制data/数据者来说,问题多半出在这里。InnoDB在升级的时候,最好使用语句导出导入。