mysql_upgrade和MySQL服务 - Vicious Circle

时间:2018-05-25 13:03:36

标签: mysql mysqlupgrade

我正在Windows 10上将MySQL服务器5.067升级到5.5.60。

我停止了服务,将bin替换为共享目录并启动了服务。

服务启动失败并显示消息(在事件查看器中):

Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
For more information, see Help and Support Center at http://www.mysql.com. 

好的,所以我用管理员打开cmd作为管理员:

mysql_upgrade --port 64202

结果:

Looking for 'mysql.exe' as: C:\Program Files (x86)\XXX\MySQLServer\bin\mysql.exe
Looking for 'mysqlcheck.exe' as: C:\Program Files (x86)\XXX\MySQLServer\bin\mysqlcheck.exe
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed

MySQL升级的设计是通过TCP连接到MySQL来运行升级,但是如果服务没有运行它怎么可能工作?这是一个恶性循环 - 需要升级MySQL服务才能启动,mysql_upgrade需要连接到正在运行的服务。

有什么问题?

2 个答案:

答案 0 :(得分:2)

不支持跳过主要版本(5.1),可能会也可能不会。适当的升级是以下之一:

计划A:升级到5.1,然后升级到5.5。每一步都运行mysql_upgrade

计划B:使用mysqldump从5.0转储数据。 (一定要做例行公事等)。吹走(或旁路)5.0并安装一个新的5.5。重新加载数据。可能是转储文件中的语法错误,如果需要,可以编辑文件。

答案 1 :(得分:0)

由于您要从5.0升级到5.5,因此不推荐使用配置值,导致引擎无法启动。

最有可能的罪魁祸首是skip-dbd,如this site所述。

所以:找到你的MySQL配置文件,注释掉skip-dbd选项并重启MySQL服务。然后,您可以使用包括身份验证在内的相应选项运行mysql_upgrade