部署在Heroku的Shopify应用出现500错误:MySQL连接被拒绝
Shopify应用部署Heroku后500错误:Azure MySQL连接拒绝问题
将Shopify应用部署在Heroku平台上,出现无特定触发条件的服务器500错误。经排查,问题根源是Azure上的MySQL数据库拒绝Docker环境的连接请求,具体错误信息如下:
Illuminate\Database\QueryException 和 SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = ? and table_name = migrations and table_type = 'BASE TABLE')
Heroku日志显示的其他错误均为该连接失败引发的连锁问题。
已尝试的排查步骤
- 反复检查env文件,确认数据库连接配置无误;
- 在Dockerfile中添加
RUN apk add mysql-client,无改善; - 将env文件中的数据库配置手动添加至Heroku配置变量,执行
heroku config可看到相关配置(DB_HOST为Azure MySQL地址,非localhost):
DB_CONNECTION: DB_DATABASE: DB_HOST: **not local host** 实际是Azure上的MySQL地址 DB_PASSWORD: DB_PORT: DB_USERNAME: HOST: SCOPES: SHOPIFY_API_KEY: SHOPIFY_API_SECRET:
今日heroku logs --tail完整输出(敏感信息已脱敏)
2024-08-21T04:10:59.839148+00:00 heroku[web.1]: 状态从up变为starting 2024-08-21T04:11:00.488050+00:00 heroku[web.1]: 发送SIGTERM终止所有进程 2024-08-21T04:11:00.509315+00:00 app[web.1]: [21-Aug-2024 04:11:00] NOTICE: 正在终止... 2024-08-21T04:11:00.509328+00:00 app[web.1]: [21-Aug-2024 04:11:00] NOTICE: 退出,再见! 2024-08-21T04:11:00.628531+00:00 heroku[web.1]: 进程退出,状态码143 2024-08-21T04:11:06.792929+00:00 heroku[web.1]: 启动进程,命令为`/app/entrypoint.sh` 2024-08-21T04:11:07.293306+00:00 app[web.1]: 运行数据库迁移... 2024-08-21T04:11:08.087715+00:00 app[web.1]: 没有需要迁移的内容。 2024-08-21T04:11:08.093413+00:00 app[web.1]: 启动nginx服务器... 2024-08-21T04:11:08.186291+00:00 app[web.1]: 服务`hwdrivers`依赖不存在的服务`dev` 2024-08-21T04:11:08.186300+00:00 app[web.1]: 服务`machine-id`依赖不存在的服务`dev` 2024-08-21T04:11:08.186506+00:00 app[web.1]: * 缓存服务依赖... [成功] 2024-08-21T04:11:08.202360+00:00 app[web.1]: * 检查路径:未找到所有者`nginx:nginx` 2024-08-21T04:11:08.204663+00:00 app[web.1]: nginx: [警告] "user"指令仅在主进程以超级用户权限运行时有效,在/etc/nginx/nginx.conf:1中被忽略 2024-08-21T04:11:08.209220+00:00 app[web.1]: * 启动nginx...nginx: [警告] "user"指令仅在主进程以超级用户权限运行时有效,在/etc/nginx/nginx.conf:1中被忽略 2024-08-21T04:11:08.211072+00:00 app[web.1]: [成功] 2024-08-21T04:11:08.214115+00:00 app[web.1]: 启动PHP服务器... 2024-08-21T04:11:08.238659+00:00 app[web.1]: [21-Aug-2024 04:11:08] NOTICE: [pool www] 当FPM不以root运行时,'user'指令被忽略 2024-08-21T04:11:08.238736+00:00 app[web.1]: [21-Aug-2024 04:11:08] NOTICE: fpm正在运行,进程ID 129 2024-08-21T04:11:08.239130+00:00 app[web.1]: [21-Aug-2024 04:11:08] NOTICE: 准备处理连接 2024-08-21T04:11:08.489892+00:00 heroku[web.1]: 状态从starting变为up 2024-08-21T17:09:22.087099+00:00 app[api]: 用户[邮箱已脱敏]部署版本90b693b9 2024-08-21T17:09:22.087099+00:00 app[api]: 用户[邮箱已脱敏]创建版本v21 2024-08-21T17:09:22.341631+00:00 heroku[web.1]: 重启 2024-08-21T17:09:22.394407+00:00 heroku[web.1]: 状态从up变为starting 2024-08-21T17:09:23.042588+00:00 heroku[web.1]: 发送SIGTERM终止所有进程 2024-08-21T17:09:23.060054+00:00 app[web.1]: [21-Aug-2024 17:09:23] NOTICE: 正在终止... 2024-08-21T17:09:23.060461+00:00 app[web.1]: [21-Aug-2024 17:09:23] NOTICE: 退出,再见! 2024-08-21T17:09:23.141668+00:00 heroku[web.1]: 进程退出,状态码143 2024-08-21T17:09:28.641194+00:00 heroku[web.1]: 启动进程,命令为`/app/entrypoint.sh` 2024-08-21T17:09:29.134483+00:00 app[web.1]: 运行数据库迁移... 2024-08-21T17:09:29.867048+00:00 app[web.1]: 没有需要迁移的内容。 2024-08-21T17:09:29.872716+00:00 app[web.1]: 启动nginx服务器... 2024-08-21T17:09:29.970252+00:00 app[web.1]: 服务`hwdrivers`依赖不存在的服务`dev` 2024-08-21T17:09:29.970259+00:00 app[web.1]: 服务`machine-id`依赖不存在的服务`dev` 2024-08-21T17:09:29.970417+00:00 app[web.1]: * 缓存服务依赖... [成功] 2024-08-21T17:09:29.984263+00:00 app[web.1]: * 检查路径:未找到所有者`nginx:nginx` 2024-08-21T17:09:29.987109+00:00 app[web.1]: nginx: [警告] "user"指令仅在主进程以超级用户权限运行时有效,在/etc/nginx/nginx.conf:1中被忽略 2024-08-21T17:09:29.992209+00:00 app[web.1]: * 启动nginx...nginx: [警告] "user"指令仅在主进程以超级用户权限运行时有效,在/etc/nginx/nginx.conf:1中被忽略 2024-08-21T17:09:29.994109+00:00 app[web.1]: [成功] 2024-08-21T17:09:29.997189+00:00 app[web.1]: 启动PHP服务器... 2024-08-21T17:09:30.019929+00:00 app[web.1]: [21-Aug-2024 17:09:30] NOTICE: [pool www] 当FPM不以root运行时,'user'指令被忽略 2024-08-21T17:09:30.020002+00:00 app[web.1]: [21-Aug-2024 17:09:30] NOTICE: fpm正在运行,进程ID 129 2024-08-21T17:09:30.020480+00:00 app[web.1]: [21-Aug-2024 17:09:30] NOTICE: 准备处理连接 2024-08-21T17:09:30.379115+00:00 heroku[web.1]: 状态从starting变为up 2024-08-21T17:09:55.071576+00:00 app[web.1]: 127.0.0.1 - 21/Aug/2024:17:09:54 +0000 "GET /index.php" 500 2024-08-21T17:09:55.071965+00:00 heroku[router]: at=info method=GET path="/" host=[主机已脱敏] request_id=[ID已脱敏] fwd="[IP已脱敏]" dyno=web.1 connect=0ms service=81ms status=500 bytes=7032 protocol=https 2024-08-21T17:09:56.155299+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=[主机已脱敏] request_id=[ID已脱敏] fwd="[IP已脱敏]" dyno=web.1 connect=1ms service=0ms status=200 bytes=232 protocol=https 2024-08-21T17:09:56.773677+00:00 app[web.1]: 127.0.0.1 - 21/Aug/2024:17:09:56 +0000 "GET /index.php" 500
内容的提问来源于stack exchange,提问作者arodmcmxcix
相关产品推荐
相关产品推荐

