前提
以下の構成を前提としています。
Webアプリケーションサーバー1つと、DBサーバーのSingle AZ構成。
<Webアプリケーション側>
ruby 2.6.3
Rails 6.1.3.1
Node v15.14.0
yarn 1.22.18
<データベース側>
・AWS RDS
エンジン:MySQL Community
サイズ :db.t2.micro
実現したいこと
GitHub上に公開されているRailsアプリケーションをAWS RDSを使用して、AWS EC2上で起動させることを目的としています。
発生している問題・エラーメッセージ
Running via Spring preloader in process 21276 Can't connect to local MySQL server through socket '********.********.***********.amazonaws.com' (2) Couldn't create 'raisetech_live8_sample_app_development' database. Please check your configuration. rake aborted! ActiveRecord::ConnectionNotEstablished: Can't connect to local MySQL server through socket '********.********.***********.amazonaws.com' (2) -e:1:in `<main>' Caused by: Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '********.********.***********.amazonaws.com' (2) -e:1:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace)
試したこと
①「前提」に記載、「Webアプリケーション側」の環境を用意。
②Githubのアプリケーションをクローンリポジトリで用意。
③「bundle install」「bundle update」の実行して、Railsアプリケーションのgemを読み込む。
④「database.yml」にて、以下の情報をAWS RDS作成時の情報に変更。
・IDとパスワード
・ソケット情報「/tmp/mysql.sock」をRDSのエンドポイントに変更
★以下、database.ymlの情報
★~<コメント文省略>~★ default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: admin password: ************ host: ********.********.***********.amazonaws.com development: <<: *default database: hogehoge_live8_sample_app_development socket: ********.********.***********.amazonaws.com ★~<コメント文省略>~★ <<: *default database: hogehoge_live8_sample_app_test socket: ********.********.***********.amazonaws.com ★~<コメント文省略>~★ production: <<: *default database: hogehoge_live8_sample_app_production username: <%= ENV['HOGEHOGE_LIVE8_SAMPLE_APP_DATABASE_USERNAME'] %> password: <%= ENV['HOGEHOGE_LIVE8_SAMPLE_APP_DATABASE_PASSWORD'] %> host: <%= ENV['HOGEHOGE_LIVE8_SAMPLE_APP_DATABASE_HOST'] %>
⑤「rails s」でアプリケーションを起動させ、アクセスしましたが、「申し訳ございません。このページに到達できません127.0.0.1 により、接続が拒否されました。」と表示された。
⇒DB側との接続を確認することに。
⑤参考のサイトをもとに「bundle exec rails db:create」を実行。
bundle execとつけて実行すると,そのRailsプロジェクトのGemfileで指定された環境で実行する事ができるようになります.
<参考サイト>https://qiita.com/windhorn/items/0f58866291f8273f18fb
⇒今回のエラーを確認しました。
⑤発生したエラーが「rake aborted!」だったため、以下を実行しました。
・gem install rake -v 12.3.3
・bundle update rake
⇒事象は解消しませんでした。
WebアプリケーションやMySQLを触り始めたばかりで情報不足や認識間違いがあるかとは存じますが、何卒お知恵を拝借できないでしょうか。
どうぞよろしくお願いいたします。
