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

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

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

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

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

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

867閲覧

デプロイしたサイトがサーバー止まってしまった。ユニコーンの起動ができない。

ma_k

総合スコア33

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

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

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2021/04/22 05:58

編集2021/04/22 14:41

Rails 6.0.3.6
ruby 2.7.1p83
AWS
Nginx
Unicorn
Mysql

でアプリを作成し、
デプロイしました。
昨日までは、うまく表示されていたのですが、
いつの間にかサーバーが落ちていました。

(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで

このサイトを元に作成しました。

イメージ説明

の表示になり、

サーバーを立ち上げ直しました。

sudo service nginx start sudo service mysqld start bundle exec unicorn_rails -c /var/www/rails/アプリ/config/unicorn.conf.rb -D -E production

で立ち上げ直すと、

master failed to start, check stderr log for details

が出てしまい、
ユニコーンのログを確認しました。

E, [2021-04-22T04:52:31.120971 #25845] ERROR -- : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) (Mysql2::Error::ConnectionError)

がでます。

ググると、アクセス関係?myssqlあたりが原因だとわかったので、

色々調べたりしました。

解決試したこと。

ln -s /var/lib/mysql/mysql.sock

で、

ln: シンボリックリンク `./mysql.sock' の作成に失敗しました: File exists

になり、

ユニコーンの起動しても同じエラー文でした。

mysql -u root -p

で、AWS上でmysqlを起動はできました。

ユニコーンでうまく行かなく行き詰まりになりました。

どなたか、ヒント、解決策などお教えいただけないでしょうか。

追記 

systemctl status mysqldは、

[noteman@ip-10-0-0-153 アプリ]$ systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 木 2021-04-22 04:52:21 UTC; 7h ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 25769 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 25751 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 25774 (mysqld) CGroup: /system.slice/mysqld.service └─25774 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

でした。

detabase.ymlの中身です。

detabaseyml default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: socket: /tmp/mysql.sock development: <<: *default database: アプリ_development test: <<: *default database: アプリ_test production: <<: *default database: アプリ_production username: root password: <%= ENV['DATABASE_PASSWORD'] %>

です。

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

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

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

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

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

yu_1985

2021/04/22 08:50

何も考えずにいきなりシンボリックリンクを作るのはやめましょう。 本当に問題がそこかがこれでは全くわかりません。 DB接続周りに問題があると思われるので、まずdatabase,ymlの内容を貼ってください。(パスワードなどはマスクしてください。) > mysql -u root -p これはmysqlを起動するコマンドではなく、ローカルのmysqlにrootユーザで接続しに行っているだけです。 これで接続できたならmysqlは起動しているはずですが、確認のためには systemctl status mysqld としてください。もっとも、最初にmysqlをstartしているので特に何もなければ起動しているはずですが。
ma_k

2021/04/22 14:44

コメントありがとうございます。 シンボリックなかったのかなと浅はかに考えてました。 質問を編集し追記しました。 systemctl status mysqldは起動されているのかと思います。
guest

回答1

0

ベストアンサー

productionだとsocketのあるところは/tmp/mysql.sockではないんじゃないですかね。

mysqlの設定ファイル(/ect/my.cnf)をみてソケットファイルがどこにあるかを確認してからdatabase.ymlを修正してください。
今回はproductionなので、少なくともproductionのところは正しいソケットファイルを設定する必要があるでしょう。
恐らく/var/lib/mysql/mysql.sockじゃないかなとは思いますが。

投稿2021/04/23 04:40

yu_1985

総合スコア7588

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

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

ma_k

2021/04/24 15:20

コメントが遅くなりすみません。 ご指摘いただいた通り、/ect/my.cnfの中が、/var/lib/mysql/mysql.sock でしたので、database.ymlも/var/lib/mysql/mysql.sockに修正しました! ユニコーンは起動できました! なのですが、画面がまだWe're sorry, but something went wrong.の表示のままでした。
yu_1985

2021/04/24 21:02

別のエラーと思われるので引き続きエラーログを確認しながらトラブルシュートしてください。
ma_k

2021/04/25 01:20

わかりました!ありがとうございます!
ma_k

2021/04/25 15:24

このあと、エラーログを探して検索で原因がわかったので無事解決できました! デプロイできました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問