Laravel 5.5部署CentOS7后执行php artisan migrate遇SQL错误求助
解决Laravel 5.5执行
php artisan migrate时的SQLSTATE[HY000] [2054]错误 我之前在CentOS7部署Laravel项目时也碰到过一模一样的2054错误,这个问题几乎都是MySQL版本与Laravel默认认证规则不兼容导致的,给你一步步拆解解决办法:
先确认问题根源
首先执行这条命令查看你的MySQL版本:
mysql --version
如果输出是MySQL 8.0及以上,那问题就找到了——MySQL 8.0默认使用caching_sha2_password加密认证,而Laravel 5.5默认只支持mysql_native_password,两者不匹配就会抛出这个连接错误。
解决方案一:修改MySQL用户的加密规则(最直接有效)
- 登录MySQL控制台:
mysql -u root -p
输入你的root密码(也就是你.env里的testpass)进入。
- 修改root用户的认证规则为
mysql_native_password:
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'testpass';
注意把testpass替换成你实际的数据库密码。
- 刷新MySQL权限:
FLUSH PRIVILEGES;
退出MySQL控制台,再重新执行迁移命令:
php artisan migrate
其他可能的排查点
如果上面的方法没解决,再检查这几个地方:
- 确认MySQL服务是否在运行:
systemctl status mysqld
如果显示未运行,启动服务:
systemctl start mysqld
- 清理Laravel配置缓存(有时候.env修改后没生效):
php artisan config:clear
- 确认数据库
event确实已经创建成功,可以登录MySQL后执行SHOW DATABASES;查看。
内容的提问来源于stack exchange,提问作者Laureal
相关产品推荐
相关产品推荐

