XAMPP 7.1.7中MySQL数据库无法运行,求技术解决方案
我之前也碰到过XAMPP里MySQL死活起不来的糟心事,给你几个我亲测有效的排查和解决方向,你可以挨个试试:
优先查看错误日志定位问题
别瞎试方案,先看日志找根源!XAMPP的MySQL错误日志一般在/Applications/XAMPP/xamppfiles/var/mysql/目录下,文件名是你的主机名加.err(比如localhost.err)。打开日志看最后几行,比如如果提示权限不足、ibdata文件损坏或者端口被占,直接对应解决就行。
如果是权限问题,执行下面的命令修复目录权限:sudo chown -R _mysql:_mysql /Applications/XAMPP/xamppfiles/var/mysql清理残留的PID文件
MySQL崩溃后可能会留下PID锁文件,阻止新进程启动。去/Applications/XAMPP/xamppfiles/var/mysql/目录下找后缀为.pid的文件(比如localhost.pid),删掉它之后再尝试启动MySQL。修复InnoDB引擎相关文件
如果日志里提到InnoDB相关错误,大概率是ibdata1或者日志文件损坏。先备份/Applications/XAMPP/xamppfiles/var/mysql/下的所有数据文件(重要!别直接删),然后删除ibdata1、ib_logfile0、ib_logfile1这三个文件,再启动MySQL。系统会自动重建这些文件,但注意这会重置InnoDB的系统表空间,所以备份一定要做!彻底排查端口占用
虽然你改了端口到3307,但还是要确认系统里有没有其他MySQL相关进程在跑。用下面的命令检查3306和3307端口的占用情况:lsof -i :3306 lsof -i :3307如果查到有其他进程,用
kill -9 进程ID杀掉它,再重新启动XAMPP的MySQL。重新初始化MySQL
如果上面的方法都没用,可以尝试彻底初始化MySQL。先关闭XAMPP,然后执行以下命令:sudo /Applications/XAMPP/xamppfiles/bin/mysqld --initialize --user=_mysql --datadir=/Applications/XAMPP/xamppfiles/var/mysql初始化完成后,去错误日志里找生成的临时密码,启动MySQL后用这个密码登录并修改成你自己的密码。
内容的提问来源于stack exchange,提问作者J. Ken

