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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

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

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

925閲覧

EC2デプロイの際に「Mysql2::Error::ConnectionError:〜」が発生してしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

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

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/05/06 18:13

編集2020/05/09 18:53

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

Railsで作ったアプリをAWS EC2でデプロイをしようとしますが、以下エラーが発生してしまいます。

Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

試したこと

EC2のインスタンスで「mysql_config --socket」を入力
出力された「/var/lib/mysql/mysql.sock」をアプリ内のdatabase.ymlに以下として入力

production: <<: *default database: sample_production username: sample password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock

5/8追記
MySQLをインストール後に起動確認
念のためにrbenvを再インストール(Verは開発時のものと合わせる)
gem install bundlerでbundlerをインストール
gem install railsでrailsをインストール(Verは開発時のものと合わせる)

5/10
追記
以下、database.ymlの全文になります。

MySQL. Versions 5.1.10 and up are supported. # # Install the MySQL driver # gem install mysql2 # # Ensure the MySQL gem is defined in your Gemfile # gem 'mysql2' # # And be sure to use new-style password hashing: # https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html # default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: socket: /tmp/mysql.sock development: <<: *default database: portfolio_development # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: portfolio_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %> # production: <<: *default database: sample_production username: sample password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock

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

Rails 5.2.4.2を使用しています。
Qiitaの以下の記事を参考にデプロイ作業しましたが、記事ではPostgreSQLとなっており、デプロイ作業段階でもPostgreSQLにしています。
アプリ作成の時にMySQLを指定して作成してしまいましたが、これが原因でDBの整合性が取れていない、ということは考えられますか?

RailsアプリをAWS EC2にデプロイする方法(つまづきそうなポイント)
https://qiita.com/a-itabashi/items/bfdf7d92b9a371cbe45e

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

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

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

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

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

guest

回答2

0

ベストアンサー

ローカルでdevelopment環境の構築のみで、production環境の構築をしていなかったのが原因だったかもしれません。お手数かけました。

投稿2020/05/10 11:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

EC2インスタンス内でmysqlは動作していますでしょうか。

投稿2020/05/06 21:02

kazto

総合スコア7196

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

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

退会済みユーザー

退会済みユーザー

2020/05/07 00:51

EC2インスタンスではPostgreSQLをインストールしたので、MySQLはインストールしていませんでした。 MySQLをインストールして再度試してみます。
退会済みユーザー

退会済みユーザー

2020/05/08 01:55

あのあと色々試しましたが、解決には至りませんでした。MySQLの起動も確認済みです。
kazto

2020/05/08 05:33

> '/tmp/mysql.sock' ログで、設定でご提示されたソケットとは違う場所を見に行っていますが、database.yml の全文を追記お願いできますでしょうか。
退会済みユーザー

退会済みユーザー

2020/05/09 18:54

連絡気づかずコメント遅れて申し訳ございません。database.ymlを全文追記致しました
kazto

2020/05/10 02:07

ありがとうございます。これは、productionで動いてないことを示しています。 railsを動かすときのコマンドは、どのように行っていますか?
退会済みユーザー

退会済みユーザー

2020/05/10 11:11

ローカルでdevelopment環境の構築のみで、production環境の構築をしていなかったのが原因だったかもしれません。お手数かけました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問