今天想将 MySQL5.7 升级到 MySQL8,下载和安装 MySQL8 过程还算顺利,但是在启动 MySQL8 服务时抛出如下错误:
mysql8 服务正在启动 . mysql8 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。 请按任意键继续. . .
此时,要想解决这个问题,需要先找到 MySQL8 启动报错的错误信息。直接进入 MySQL8 的 data 目录,找到一个 *.err 文件(笔者的文件名为:hxstrive.err),该文件记录了 MySQL8 启动的错误信息。笔者的 *.err 文件中有如下错误信息:
Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : D:/server/mysql-8.0.25-winx64/infile
表示 MySQL Server 不能访问 D:/server/mysql-8.0.25-winx64/infile 目录,请确认该目录是否存在,或者有没有权限访问。
手动创建 D:/server/mysql-8.0.25-winx64/infile 目录,然后需要删除历史 data 目录。最后,就是重新初始化 MySQL8 和安装 MySQL8。命令如下:
(1)初始化 MySQL8,如下:
D:\server\mysql-8.0.25-winx64\bin> mysqld --initialize --user=mysql --console 2022-12-02T02:44:49.439700Z 0 [System] [MY-013169] [Server] D:\server\mysql-8.0.25-winx64\bin\mysqld (mysqld 8.0.25) initializing of server in progress as process 10420 2022-12-02T02:44:49.453913Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-12-02T02:44:53.506196Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-12-02T02:44:55.912371Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GU7geBgdt9.6
(2)安装 MySQL8,如下:
D:\server\mysql-8.0.25-winx64\bin> mysqld --install mysql8 Service successfully installed.
(3)启动服务
使用 net start mysql8 命令启动服务,输出如下:
mysql8 服务正在启动 . mysql8 服务已经启动成功。 请按任意键继续. . .