|
双击 WAMP 托盘图标,无务绿色变橙色,法启d服点开菜单一看,无务wampmysqld 服务那行是法启d服红的。手动启动,无务弹窗报错:“Windows 无法启动 wampmysqld 服务(位于 本地计算机 上)。法启d服错误 1067:进程意外终止。无务” 这行字我见过不下二十次,法启d服客户发来的无务截图里十张有八张是这个。 1067 是法启d服个笼统错误码,等于医生跟你说“你不舒服”。无务真正的法启d服原因得去翻 MySQL 自己的日志。位置在 wamp\bin\mysql\mysql[版本号]\data\mysql_error.log,无务用记事本打开,法启d服拉到最底下。无务常见的死法有这么几种。 端口被占是最常见的一种。3306 端口被别的 MySQL 实例、或者某些国产安全软件抢了。命令行敲 netstat -ano | findstr 3306,如果看到 LISTENING 后面跟着一个 PID,去任务管理器里对号入座。我遇到过 Skype 占 3306 的,也遇到过之前装过 XAMPP 没卸载干净,旧 mysqld.exe 还在后台跑。直接 taskkill 干掉,或者改 WAMP 的端口,改 my.ini 里 port=3306 那一行。 第二种,数据目录里的 ibdata1 或 ib_logfile 损坏。通常是上次关机时 MySQL 没正常关闭,或者硬盘有坏道。日志里会写 “InnoDB: Database page corruption” 或者 “ib_logfile0 大小不对”。这种别硬修,把 data 目录整个备份出来,然后从 wamp 安装包里的原始 data 目录复制一份回去,再把你的数据库文件夹(比如 wordpress、test)单独拷进去。注意只拷数据库文件夹,别把 ibdata1 覆盖回去。 第三种比较隐蔽:my.ini 里路径写错了。WAMP 装完默认路径是 C:\wamp64\bin\mysql\mysql8.0.31\data,但有人把 WAMP 挪到 D 盘,或者改过 basedir,my.ini 里没同步改。日志会直接报 “Can't find file: '.\mysql\plugin.frm'” 之类的。打开 my.ini,检查 basedir 和 datadir 两行,路径里的斜杠用双反斜杠或者正斜杠,别用单反斜杠。 还有一种情况是 Windows 服务本身卡住了。服务列表里找到 wampmysqld,右键属性,看“可执行文件的路径”是不是指向正确的 mysqld.exe。有时候 WAMP 升级后,旧的服务注册信息没清掉,路径还指着老版本。命令行用管理员权限跑 sc delete wampmysqld,然后重新运行 WAMP 的 “安装服务” 菜单。这步做完一般能解决。 权限问题也碰过几次。data 目录的 NTFS 权限被改过,SYSTEM 账户没有完全控制权。右键 data 文件夹,属性,安全,编辑,把 SYSTEM 和 Administrators 都加上完全控制。应用后再启动服务。这个坑在从别人电脑拷贝 WAMP 整个文件夹过来时特别常见。 我自己的习惯是,遇到 1067 先不急着改配置。打开 mysql_error.log,看最后 20 行。如果日志里写 “ready for connections” 然后又断了,那是端口冲突;如果写 “InnoDB: Cannot allocate memory”,那是内存不够或者 my.ini 里 innodb_buffer_pool_size 设太大;如果写 “unknown variable”,那是 my.ini 里有拼写错误,比如把 default-storage-engine 写成了 default_storage_engine。 最后说一个野路子。WAMP 右下角图标,MySQL -> Service administration -> “安装服务” 和 “启动/继续服务” 来回点两次。有时候 Windows 的服务控制管理器抽风,手动重启一下就好了。别笑,这招救过我好几次急。 |