Docker部署Laravel 8执行php artisan migrate报2002连接拒绝错误
解决步骤
- 确认命令执行环境
不要在宿主机本地直接执行php artisan migrate,宿主机无法解析Docker内部的mysql服务域名,正确执行方式为:docker-compose exec app php artisan migrate - 清理Laravel配置缓存
如果之前生成过配置缓存,修改后的.env参数不会生效,先执行清理:docker-compose exec app php artisan config:clear - 验证容器网络连通性
进入app容器测试和mysql容器的网络连通性:
若返回连接成功说明网络正常,否则检查docker-compose exec app nc -zv mysql 3306docker-compose.yml中app和mysql服务是否都加入了mynetwork网络。 - 检查数据库用户权限
登录phpmyadmin后执行SQL给laravel用户赋权,避免权限不足导致迁移失败:GRANT ALL ON laraveldb.* TO 'laravel'@'%'; FLUSH PRIVILEGES; - 适配Mariadb配置
在.env文件中添加以下配置,避免数据库驱动兼容问题:
同时打开DB_UNIX_SOCKET=nullconfig/database.php,将mysql连接的strict参数设置为false,关闭严格SQL模式。
内容的提问来源于stack exchange,提问作者Imxohail
相关产品推荐
相关产品推荐

