问题重述
XAMPP 启动 mysql 时,出现错误,提示如下:
问题适用情况
在安装 XAMPP 环境之前,本地独立安装了 MySQL 开发环境,此时在 XAMPP 启动 MySQL 时就会出现上面问题,是这样的情况,可以试试下面的方法来解决。
解决方案
打开注册表(快捷打开方式:cmd->regedit
),找到 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL]
下的 ImagePath 项,如下图:
此时 mysql 的 ImagePath 值为 D:\mysql-5.1.73-winx64\bin\mysqld --defaults-file=my.ini MySQL
, 即指向本地 mysql 安装路径下。
将此处修改为 D:\xampp\mysql\bin\mysqld --defaults-file=my.ini MySQL
,其中 D:\xampp\mysql\bin\mysqld
为 XAMPP 环境中 mysql 的路径,并指定默认的配置文件为 my.ini。
修改完后,关闭注册表,关闭任务管理器中的 mysqld.exe
(如果有此项的话) ,打开服务,找到 MySQL 服务,查看属性,我们可以看到此时 MySQL 的可执行文件路径指向到了 XAMPP 下的 MySQL 路径
之后在 XAMPP 控制台中重新启动 MySQL,此时我的 MySQL 终于启动了。
最终解决
不难发现,其实 XAMPP 并没有启动 MySQL,因为在进程中可以看到,任务只是 mysqld.exe 进程启动,且 MySQL 显示启动中。通过 phpmyadmin,我们可以清晰的看到 MySQL 服务还是有问题的。
此时的 MySQL 服务会一直启动中,且停止服务时,会出现无法停止服务的提示
而此时的进程中,可以发现 mysqld.exe 进程启动了,但没有正常启动服务
进服务管理器(快捷方式 cmd->services.msc
)中发现,启动 MySQL 时出现了 1053 错误
此时,我的解决方法就是再还原 MySQL 的 ImagePath 值。
然后关闭 XAMPP 及 MySQL 服务和 mysqld.exe 进程,之后运行 XAMPP 控制台,此时报如下错误:
可以发现错误中,说明了是路径问题,所以我复制了 Expected Path
后的路径 d:\xampp\mysql\bin\mysqld.exe --defaults-file=d:\xampp\mysql\bin\my.ini mysql
到 MySQL 的 ImagePath,此时运行,会出现下面错误
于是按照错误打开日志,即 XAMPP 控制台中,MySQL 的后 log 按钮,打开日志,会看到下面错误
日志里面说 InnoDB: Cannot create D:\xampp\mysql\data\ib_logfile101
,于是将 D:\xampp\mysql\data
目录下的 ib_logfile101
删掉了,顺手我还把 ibdata1
文件删了,之后关闭控制台,重新尝试,发现还是这个错误,再打开日志和上面类似
可以看到 ib_logfile101
文件创建成功,但是这里 Cannot create D:\xampp\mysql\data\ib_logfile1
又不能创建 ib_logfile1
文件了,于是将 D:\xampp\mysql\data
下的 logfile
和 ibdata1
全删了,之后关闭控制台,重新启动,终于启动 MySQL 了。
关闭重新尝试,也没有问题了,此时控制台还会提示如下:
就是建议采用管理员模式运行 XAMPP。
注:这里要注意的就是,将
logfile
和ibdata1
文件复制、替换D:\xampp\mysql\data
下的logfile
和ibdata1
文件,使用 MySQL 启动时,依旧会报上面的错误,具体原因不是很清楚,有知情者,望不吝告知,谢谢。
这里不知道有没有更好的解决方式,因为此法只是可以让 XAMPP 启动集成环境中的 MySQL,此时本地单独安装的 MySQL 要启动需要换回 ImagePath 值。所以个人觉得如果要使用 XAMPP 集成环境,还是卸载本地安装的 MySQL,之后重新安装 XAMPP 环境,可能会省事点。如果有更好的解决方式,希望可以留言告知,谢谢!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于