回答編集履歴

2

追記

2020/07/19 19:53

投稿

winterboum
winterboum

スコア23324

test CHANGED
@@ -59,3 +59,33 @@
59
59
  これはおかしいです。killが失敗したか、違うプロセスをkillしたか何方かです。
60
60
 
61
61
  3000を使おうとしているのが、unicorn と bundle exec rails s -e production -b 0.0.0.0 と2つ有りますから、要注意。
62
+
63
+
64
+
65
+
66
+
67
+ 追記2
68
+
69
+ pry >User.count で => 0 となるってことは production環境で RailsとMySQLは接続できています。
70
+
71
+ なのになぜ???
72
+
73
+ 気になるのは
74
+
75
+ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
76
+
77
+ もしかしたら developmentで起動していないか?
78
+
79
+ 実は私は 環境をパラメーターで渡すのは余り信用していないのです。
80
+
81
+ 次の2つ試してください
82
+
83
+ RAILS_ENV=production bundle exec unicorn_rails -c config/unicorn.rb -D
84
+
85
+ -E でなく -e(下記のように)で
86
+
87
+ bundle exec unicorn_rails -c config/unicorn.rb -e production -D
88
+
89
+
90
+
91
+ AWSでいつまでも3000で実行するわけでは無いでしょうから、nginxとかに切り替えたほうが早いかも

1

修正

2020/07/19 19:53

投稿

winterboum
winterboum

スコア23324

test CHANGED
@@ -1,5 +1,61 @@
1
- config/uncorn.rb に
1
+ ~~config/uncorn.rb に
2
2
 
3
3
  listen
4
4
 
5
- という設定項目が有ると思います。そこが /tmp/mysql.sock になってませんか?
5
+ という設定項目が有ると思います。そこが /tmp/mysql.sock になってませんか?~~
6
+
7
+
8
+
9
+ すみません、勘違いしていました、unicorn - nginx 間の問題ではなく、Rails - Mysqlの問題ですね。
10
+
11
+ 質問の最初に書かれている「Can't connect to local MySQL server through socket '/tmp/mysql.sock'」は
12
+
13
+ > [ec2-user@ip アプリ名]$ rails db:create RAILS_ENV=production
14
+
15
+ [ec2-user@ip アプリ名]$ rails db:migrate RAILS_ENV=production
16
+
17
+
18
+
19
+ が成功していれば 「Rails - Mysqlの問題」は解決しています。
20
+
21
+ 成功していたならさらに
22
+
23
+ > // 再度エラーでひっかかっていた箇所を確認すると、同様のエラーのままでした。
24
+
25
+ Can't connect to local MySQL server through socket '/tmp/mysql.sock'
26
+
27
+
28
+
29
+ というのが不思議です。
30
+
31
+ Rails - Mysqlの問題
32
+
33
+ Rails - unicorn の問題
34
+
35
+ の切り分けがまだ不十分に感じます。
36
+
37
+ RAILS_ENV=production rails c
38
+
39
+ でproduction環境でconsoleに入って、定義済のモデル、例えばUserがあるなら
40
+
41
+ User.count
42
+
43
+ とした時に 0 とか 12 とか返ってくるか確認してください。
44
+
45
+ 帰ってきたら Rails - Mysqlの問題 はOKです。
46
+
47
+ RAILS_ENV=production は commandの引数で入れるとだめなcommandもあるので、念の為commandの前に置いて試してください。
48
+
49
+
50
+
51
+ なお、
52
+
53
+ > in `initialize': Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
54
+
55
+ プロセスをkillし直しましたが同じくエラーのままでした。
56
+
57
+
58
+
59
+ これはおかしいです。killが失敗したか、違うプロセスをkillしたか何方かです。
60
+
61
+ 3000を使おうとしているのが、unicorn と bundle exec rails s -e production -b 0.0.0.0 と2つ有りますから、要注意。