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