8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

无法连接到 MySQL 服务器 (110)。Ruby on Rails aws codebuild 部署。AWS RDS 实例

Gunter Abreu 2月前

27 0

我正在尝试将我的一些代码推送到实时。我正在使用 aws codebuild 和 bitbucket 管道进行部署。当我尝试推送我的更改时,管道循环了 40 分钟,最终在一次失败后...

我正在尝试将我的一些代码推送到实时。我正在使用 aws codebuild 和 bitbucket 管道进行部署。当我尝试推送更改时,管道循环 40 分钟,一旦 codebuild 失败,管道最终会失败。检查日志,这是失败前发生的最后一件事。

Step 4/5 : RUN bundle exec rake db:migrate -X -s -q
 ---> Running in c556f46950e3
WARNING: Use strings for Figaro configuration. true was converted to "true".
rake aborted!
Mysql2::Error: Can't connect to MySQL server (110)

之后也会出现这个错误。

Tasks: TOP => db:migrate
(See full trace by running task with --trace)
W, [2024-08-06T14:11:25.992477 #6]  WARN -- : Creating scope :active. Overwriting existing method Professional.active.
I, [2024-08-06T14:13:26.227433 #6]  INFO -- [Bugsnag]: Notifying https://notify.bugsnag.com of Mysql2::Error
D, [2024-08-06T14:13:26.318774 #6] DEBUG -- [Bugsnag]: Request to https://notify.bugsnag.com completed, status: 200
D, [2024-08-06T14:13:26.325314 #6] DEBUG -- [Bugsnag]: Not notifying Mysql2::Error due to ignore being signified in internal middlewares
The command '/bin/sh -c bundle exec rake db:migrate -X -s -q' returned a non-zero code: 1

我正在使用 ruby​​ on rails。我担心我处理数据库的方式可能存在问题,但我希望有人可以指出在哪里检查问题。

我尝试清理 ruby​​ on rails 中的迁移并再次部署。(不幸的是,我手动删除了文件,而不是正确的方法)

我尝试更新我的 rds 实例,因为他们说需要更新

EC2 安全组已正确分配给我的 RDS。

更多背景信息:在我尝试推送此新代码之前,此管道运行良好,因此我认为它可能与代码有关。如果我可以提供更多背景信息,请告诉我

 branches:
develop:
  - step:
      name: create & push image
      script:
        - aws/codebuild.sh demo company-demo
  - step:
      name: deploy
      deployment: staging
      script:
        - sed -i "s/TAGTOSET/demo-$BITBUCKET_COMMIT/g" ./aws/demo/ecs/task.json
        - export TASK_VERSION=$(aws ecs register-task-definition --cli-input-json file://aws/demo/ecs/task.json | jq --raw-output '.taskDefinition.revision')
        - echo "Registered ECS Task Definition $TASK_VERSION"
        - aws ecs update-service --cluster demo --service company --task-definition demo-company:$TASK_VERSION --desired-count 1 --force-new-deployment
  - step:
      name: whenever deploy
      script:
        - sed -i "s/TAGTOSET/demo-$BITBUCKET_COMMIT/g" ./aws/demo/ecs/cron-task.json
        - export TASK_VERSION=$(aws ecs register-task-definition --cli-input-json file://aws/demo/ecs/cron-task.json | jq --raw-output '.taskDefinition.revision')
        - echo "Registered ECS Task Definition $TASK_VERSION"
        - ECS_CLUSTER=demo TASK_DEFINITION=demo-cron ECS_CONTAINER=ruby AWS_REGION=ca-central-1 elastic_whenever -i demo -f config/schedule.rb

aws/codebuild.sh

PROJECT_ENV=$1

项目名称=$2

标签=\'$PROJECT_ENV-$BITBUCKET_COMMIT\'

echo \'开始构建项目:$PROJECT_NAME,标签为:$TAG\'BUILD_INFO= aws codebuild start-build --project-name $PROJECT_NAME --source-version $BITBUCKET_BRANCH --environment-variables-override name=TAG,value=$TAG echo \'构建信息:$BUILD_INFO\'

BUILD_ID= echo $BUILD_INFO | jq -r '.build.id'

while true;doBUILD_STATUS= aws codebuild batch-get-builds --ids $BUILD_ID | jq -r '.builds[0].buildStatus' echo \'当前构建状态:$BUILD_STATUS\'

如果 [[ $BUILD_STATUS == \'SUCCEEDED\' ]]; thenecho $BUILD_STATUSexit 0elif [[ $BUILD_STATUS == \'IN_PROGRESS\' ]]; thenecho \'构建正在进行中\'sleep 10elseecho \'构建失败,状态为:$BUILD_STATUS\'exit 1;fidone

帖子版权声明 1、本帖标题:无法连接到 MySQL 服务器 (110)。Ruby on Rails aws codebuild 部署。AWS RDS 实例
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Gunter Abreu在本站《ruby》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 很明显,代码无法连接到数据库——但这就是从您提供的内容中可以解读出的全部内容。看看您可能对数据库做了哪些更改,特别是连接信息。

  • 好的,感谢您的反馈。我添加了一些迁移,后来决定删除它们。我唯一保留的是将 \'session_id\' 添加到我的约会表中。至于连接信息,由于我继承了代码库,因此我并不清楚所有细节。我编辑了原始帖子以包含我的 bitbucket-pipelines.yml 文件。如果有帮助,请告诉我。它在第 1 步“创建和推送图像”上失败了谢谢!!!

  • 套接字错误号 110(这是错误消息末尾的数字)表示超时错误 - mysql 服务器未及时响应。可能是网络或数据库配置问题 - 根据您目前分享的信息,无法判断具体是什么原因造成的。

  • 抱歉,关于那件事。我可以提供哪些其他信息来帮助解决问题?数据库迁移?docker 配置?如果这可以帮助破译问题,我也可以在某处提供 aws 日志

返回
作者最近主题: