質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

0回答

1023閲覧

github actionsでMysql2::Error::ConnectionErrorがでてDBが作成できない

meuar

総合スコア18

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

1クリップ

投稿2020/03/18 21:39

閲覧いただきありがとうございます。

発生している問題・エラーメッセージ

表題についてですが、github actionsで自動テスト・自動フォーマットを実行しているのですが、以下のようなエラーが出てDBを作成することができなくなりました。

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Couldn't create 'tooling_development' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) bin/rails:4:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace) ##[error]Process completed with exit code 1.

3/15にまでは正しくDBが作成されていましたが、3/17日から突然できなくなりました。
開発環境ではDocker-composeを使用しているのですが、そちらは正しくDBが作成されます。
どなたかご助言いただけないでしょうか?

該当のソースコード

yaml

1 2# .github/workflows/ci.yml 3 4name: CI 5 6on: [push] 7 8jobs: 9 build: 10 runs-on: ubuntu-latest 11 12 services: 13 db: 14 image: mysql:5.7 15 env: 16 MYSQL_ROOT_PASSWORD: password 17 MYSQL_DATABASE: root 18 ports: 19 - 3306 20 21 steps: 22 - uses: actions/checkout@v1 23 24 - name: Set up Ruby 2.6 25 uses: actions/setup-ruby@v1 26 with: 27 ruby-version: 2.6.x 28 29 - name: mysql set up 30 run: | 31 sudo apt-get update 32 sudo apt-get install libmysqlclient-dev 33 - name: yarn install 34 run: yarn install 35 36 - name: Build and test with rails 37 run: | 38 gem install bundler 39 bundle install --jobs 4 --retry 3 40 bundle exec rails 41 cp config/database.yml.ci config/database.yml 42 - name: Cache gems 43 uses: actions/cache@preview 44 with: 45 path: vendor/bundle 46 key: ${{runner.os}}-gem-${{hashFiles('**/Gemfile.lock')}} 47 restore-keys: ${{runner.os}}-gem- 48 49 - name: Cache node_modules 50 uses: actions/cache@preview 51 with: 52 path: ./node_modules 53 key: ${{runner.os}}-node-${{hashFiles('**/yarn.lock')}} 54 restore-keys: ${{runner.os}}-node- 55 56 - name: Create db 57 run: | 58 bundle exec rails db:create 59 - name: Run rubocop 60 run: bundle exec rubocop 61 62 - name: Run rspec 63 env: 64 GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} 65 run: bundle exec rspec

yaml

1# database.yml 2 3# MySQL. Versions 5.5.8 and up are supported. 4# 5# Install the MySQL driver 6# gem install mysql2 7# 8# Ensure the MySQL gem is defined in your Gemfile 9# gem 'mysql2' 10# 11# And be sure to use new-style password hashing: 12# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html 13# 14default: &default 15 adapter: mysql2 16 encoding: utf8mb4 17 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 18 username: root 19 password: root 20 host: localhost 21 22development: 23 <<: *default 24 database: tooling_development 25 26# Warning: The database defined as "test" will be erased and 27# re-generated from your development database when you run "rake". 28# Do not set this db to the same as development or production. 29test: 30 <<: *default 31 database: tooling_test 32 33# As with config/credentials.yml, you never want to store sensitive information, 34# like your database password, in your source code. If your source code is 35# ever seen by anyone, they now have access to your database. 36# 37# Instead, provide the password as a unix environment variable when you boot 38# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database 39# for a full rundown on how to provide these environment variables in a 40# production deployment. 41# 42# On Heroku and other platform providers, you may have a full connection URL 43# available as an environment variable. For example: 44# 45# DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" 46# 47# You can use this database configuration with: 48# 49# production: 50# url: <%= ENV['DATABASE_URL'] %> 51# 52production: 53 <<: *default 54 database: tooling_production 55 username: tooling 56 password: <%= ENV['tooling_DATABASE_PASSWORD'] %> 57

補足情報(FW/ツールのバージョンなど)

Rails 6.0.2 ruby 2.6.5 mysql 5.7 開発環境ではDocker-compose使用

試したこと

・database.ymlのホスト名をlocalhostから127.0.0.1に変更→hostが見つからないエラーが出て断念
・DB起動を待つため30秒sleepしてみる→状況変わらず
・libmysqlclient-devを常に最新のものを取得できるようにupgradeコマンドを追加してみる→状況変わらず
・database.ymlからsocketを設定してみる→状況変わらず
socket: /var/run/mysqld/mysqld.sock

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問