最近有个项目需求,要把MySQL55换成MySQL57解决兼容性问题。然后开始了踩坑之旅 首先,我觉得坑产生的根源是采用安装器安装,据一位大神说ZIP安装又快又好,是不是完全正确暂且不顾,确实安装器安装很多细节都对你隐藏,万一安装出错需要去反复查找,确实应该是不如ZIP来自云玩家的指点。不管怎么说,卸载重装时,一要卸载干净,二推荐ZIP

首先就是55,备份数据,控制面板卸载,相关文件夹删除,注册表清理,这几部详细操作网上有很多而且一般不会出问题,不赘述。 再来是官网下载的MSI文件,直接安装,前面都很顺利,就是在最后一步设置时,始终卡在staring the sever。总是在这里失败 image.png

以为很好解决,后来居然这个问题占用了安装时间的80% 首先查看日志 image.png

Attempting to connect to Mysql@localhost:3306 with user root with no password... MySQL error 1042: Unable to connect to any of the specified MySQL hosts. Failed to connect to MySQL Server 5.7.28 after 10 attempts. Ended configuration step: Starting the server

一直反复这么一句 针对这个日志查询,能查到的无非就是改登陆方式之类的,很遗憾,在我这里,他并没有直接起作用(后续我并未改回去,也许这步是必要的,但无法解决所有问题)

推荐这里查看更详细的日志

mysqld --console

我最终解决问题就是在这里找到准确异常的 image.png

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

当然,在此之前,你可能需要修改一下C:\ProgramData\MySQL\MySQL Server 5.7\my.ini或者其他配置文件my.cnf/my.ini/my-default.ini这三个中的一个 加入

basedir="C:/Program Files/MySQL/MySQL Server 5.7/"
datadir=C:/Program Files/MySQL/MySQL Server 5.7/data

PowerShell管理员进入bin目录操作

PS C:\WINDOWS\system32> cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
PS C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqld -install
Service successfully installed.
PS C:\Program Files\MySQL\MySQL Server 5.7\bin> net start mysql

如果服务器正常启动,恭喜你,可以在命令行使用了

如果不幸与我一样

MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。

可以尝试格式DATA重install

PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqld -remove
Service successfully removed.
PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqld ---initialize       PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqld ---initialize-insecure
PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqld -install
Service successfully installed.
PS C:\Program Files\MySQL\MySQL Server 5.7\bin> net start mysql

若还是不行,请按照我上面说的,查看日志

mysqld --console

找到自己的具体问题,以我举例,我的问题主要是

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

于是去C:\ProgramData\MySQL\MySQL Server 5.7目录下,删掉所有ib_logfile0和ib_logfile1。 然后重启服务 image.png 成功解决

如果你root账户密码可以成功登陆,就不用看了,恭喜你安装成功

我这里又出现了登陆失败问题

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

image.png

当然比起安装问题,这个就很单纯简单了。

mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --console --skip-grant-tables

停住表示启动成功 image.png 无密码登陆成功

然后更新密码

mysql>update user set authentication_string=password("密码") where user="root";

最后成功登录 image.png