Mac系统使用XAMPP运行Laravel创建迁移出现查询错误如何解决?
操作前先确认XAMPP控制面板中MySQL服务处于正常运行状态。
解决步骤
1. 对齐CLI端PHP版本与XAMPP版本
终端执行php artisan相关命令时默认调用Mac本机预装的PHP 7.3.29,和XAMPP集成的PHP 8.0.10环境不一致,会导致数据库连接路径不匹配,需优先修正:
- 打开终端编辑shell配置文件,使用zsh的用户编辑
~/.zshrc,使用bash的用户编辑~/.bash_profile - 在文件末尾添加一行配置:
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" - 执行
source ~/.zshrc(zsh环境)或source ~/.bash_profile(bash环境)让配置生效 - 执行
php -v验证版本,确认输出为XAMPP对应的PHP 8.0.10即可
2. 校验Laravel .env数据库连接参数
确认项目根目录下.env文件的数据库配置和XAMPP MySQL参数完全匹配:
- 默认XAMPP MySQL端口为3306,账号为
root,初始密码为空 DB_HOST需填写127.0.0.1,不要填localhost,避免走本地socket连接出错- 确认
DB_DATABASE对应的库名laravel-app已经提前在XAMPP的phpMyAdmin中创建完成,不存在拼写错误
3. 修改XAMPP MySQL配置参数
SQLSTATE[HY000] [2006] MySQL server has gone away报错通常是因为连接超时或者数据包大小限制导致,需调整MySQL配置:
- 打开XAMPP控制面板,点击MySQL行的「Config」按钮,选择
my.cnf文件编辑 - 找到
[mysqld]段落,添加或修改以下参数:wait_timeout = 600 max_allowed_packet = 64M interactive_timeout = 600 - 保存配置后,在XAMPP控制面板重启MySQL服务
- 重启后先执行
php artisan migrate:install初始化迁移表,再执行正常的迁移命令验证是否修复
额外排查方案
如果以上操作后仍报错,可尝试清空重生成Laravel配置缓存:
- 执行
php artisan config:clear清除旧的缓存配置 - 执行
php artisan config:cache重新生成配置缓存
内容的提问来源于stack exchange,提问作者ksuetnikov
相关产品推荐
相关产品推荐

