解決したいこと
railsでアプリを作成し、awsのEC2を用いてデプロイを行いました。
途中まで正常に動作していたのですが、急にエラーが起こってしまい、アプリが動かせない状況です。
ブラウザ上のWe're sorry, but something went wrongのエラーを解決したいです。
unicornは起動していることを確認済みです。
開発環境
- macOS Catalina
- Ruby 2.6.5
- Ruby on Rails 6.0
- AWS(EC2)
- unicorn
- nginx
- mariaDB
- Capistrano
エラー画面
試したこと
1. unicornのエラーログを確認
php:ターミナル
1[ec2-user@ip-172-31-45-167 app]$ less log/unicorn.stderr.log 2 3# 実行結果 4I, [2021-01-07T07:26:08.724759 #12148] INFO -- : Refreshing Gem list 5I, [2021-01-07T07:26:10.526894 #12148] INFO -- : listening on addr=0.0.0.0:3000 fd=8 6E, [2021-01-07T07:26:10.527365 #12148] ERROR -- : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error::ConnectionError)
ログの結果から、データベースが起動していないのではないかと考えたのでステータスを確認しました。
2. データベースとnginxが起動しているか確認
php:ターミナル
1# データベースのステータスを確認 2[ec2-user@ip-172-31-45-167 app]$ sudo systemctl status mariadb 3 4# 実行結果 5● mariadb.service - MariaDB database server 6 Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) 7 Active: active (running) since 水 2021-02-17 12:24:07 UTC; 20h ago 8 Main PID: 6900 (mysqld_safe) 9 Tasks: 20 10 Memory: 75.5M 11 CGroup: /system.slice/mariadb.service 12 ├─6900 /bin/sh /usr/bin/mysqld_safe --basedir=/usr 13 └─7066 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --soc... 14 15 2月 17 12:24:05 ip-172-31-45-167.ap-northeast-1.compute.internal systemd[1]: Starting MariaDB database server... 16 2月 17 12:24:05 ip-172-31-45-167.ap-northeast-1.compute.internal mariadb-prepare-db-dir[6812]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done. 17 2月 17 12:24:05 ip-172-31-45-167.ap-northeast-1.compute.internal mariadb-prepare-db-dir[6812]: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir. 18 2月 17 12:24:05 ip-172-31-45-167.ap-northeast-1.compute.internal mysqld_safe[6900]: 210217 12:24:05 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. 19 2月 17 12:24:05 ip-172-31-45-167.ap-northeast-1.compute.internal mysqld_safe[6900]: 210217 12:24:05 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 20 2月 17 12:24:07 ip-172-31-45-167.ap-northeast-1.compute.internal systemd[1]: Started MariaDB database server. 21 22 23 24 25 26 27 28# nginxのステータスを確認 29[ec2-user@ip-172-31-45-167 app]$ sudo systemctl status nginx.service 30 31# 実行結果 32● nginx.service - The nginx HTTP and reverse proxy server 33 Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) 34 Drop-In: /etc/systemd/system/nginx.service.d 35 └─override.conf 36 Active: active (running) since 水 2021-02-17 19:24:31 UTC; 13h ago 37 Process: 10238 ExecStartPost=/bin/sleep 0.1 (code=exited, status=0/SUCCESS) 38 Process: 10229 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) 39 Process: 10224 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) 40 Process: 10187 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) 41 Main PID: 10236 (nginx) 42 Tasks: 2 43 Memory: 3.8M 44 CGroup: /system.slice/nginx.service 45 ├─10236 nginx: master process /usr/sbin/nginx 46 └─10239 nginx: worker process 47 48 2月 17 19:24:31 ip-172-31-45-167.ap-northeast-1.compute.internal systemd[1]: Starting The nginx HTTP and reverse proxy server... 49 2月 17 19:24:31 ip-172-31-45-167.ap-northeast-1.compute.internal nginx[10224]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 50 2月 17 19:24:31 ip-172-31-45-167.ap-northeast-1.compute.internal nginx[10224]: nginx: configuration file /etc/nginx/nginx.conf test is successful 51 2月 17 19:24:31 ip-172-31-45-167.ap-northeast-1.compute.internal systemd[1]: Started The nginx HTTP and reverse proxy server.
3. socketのパスを確認
php:ターミナル
1# ターミナル 2[ec2-user@ip-172-31-45-167 app]$ mysql_config --socket 3 4# 実行結果 5/var/lib/mysql/mysql.sock
php:database.yml
1# config/database.yml 2 3production: 4 <<: *default 5 database: entertainer_production 6 username: root 7 password: <%= ENV['DATABASE_PASSWORD'] %> 8 socket: /var/lib/mysql/mysql.sock
とくに間違いを発見出来なかったので何が原因か特定できない状況です。
どうかご教示願いたいです。。
追記
less log/unicorn.stderr.logコマンドでunicornのログを更新