teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

8

修正

2020/09/21 08:38

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -226,10 +226,12 @@
226
226
 
227
227
  ローカル
228
228
  ```
229
+ % mysql_config --socket
229
230
  /tmp/mysql.sock
230
231
  ```
231
232
  EC2
232
233
  ```
234
+ % mysql_config --socket
233
235
  /var/lib/mysql/mysql.sock
234
236
  ```
235
237
  そこで、database.ymlをこの様に変更しましたが、エラーは変わりませんでした。

7

修正

2020/09/21 08:38

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -222,7 +222,16 @@
222
222
  ```
223
223
  mysql_config --socket
224
224
  ```
225
- が、ローカルとEC2ターミナルでは違いました。
225
+ の結果が、ローカルとEC2ターミナルでは違いました。
226
+
227
+ ローカル
228
+ ```
229
+ /tmp/mysql.sock
230
+ ```
231
+ EC2
232
+ ```
233
+ /var/lib/mysql/mysql.sock
234
+ ```
226
235
  そこで、database.ymlをこの様に変更しましたが、エラーは変わりませんでした。
227
236
  ```
228
237
  # MySQL. Versions 5.1.10 and up are supported.
@@ -282,4 +291,15 @@
282
291
  username: <%= ENV['DB_USERNAME'] %>
283
292
  password: <%= ENV['DB_PASSWORD'] %>
284
293
  socket: /var/lib/mysql/mysql.sock
294
+ ```
295
+
296
+ ```
297
+ ps ax | grep mysqld
298
+ ```
299
+ の結果です。
300
+ ```
301
+ 9762 ? Ssl 0:01 mysqld
302
+ 13734 pts/1 S+ 0:00 grep --color=auto mysqld
303
+ 21504 ? S 0:00 /bin/sh /usr/libexec/mysql56/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
304
+ 21718 ? Sl 0:14 /usr/libexec/mysql56/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql56/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
285
305
  ```

6

修正

2020/09/21 08:37

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -214,4 +214,72 @@
214
214
  exit 0
215
215
  fi
216
216
  bundle exec cap production deploy unicorn:restart
217
+ ```
218
+
219
+
220
+ 追記です。
221
+
222
+ ```
223
+ mysql_config --socket
224
+ ```
225
+ が、ローカルとEC2ターミナルでは違いました。
226
+ そこで、database.ymlをこの様に変更しましたが、エラーは変わりませんでした。
227
+ ```
228
+ # MySQL. Versions 5.1.10 and up are supported.
229
+ #
230
+ # Install the MySQL driver
231
+ # gem install mysql2
232
+ #
233
+ # Ensure the MySQL gem is defined in your Gemfile
234
+ # gem 'mysql2'
235
+ #
236
+ # And be sure to use new-style password hashing:
237
+ # https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
238
+ #
239
+ default: &default
240
+ adapter: mysql2
241
+ encoding: utf8
242
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
243
+ username: root
244
+ password: password
245
+ host: db
246
+ socket: /tmp/mysql.sock
247
+
248
+ development:
249
+ <<: *default
250
+ database: LuggageMGT_development
251
+
252
+ # Warning: The database defined as "test" will be erased and
253
+ # re-generated from your development database when you run "rake".
254
+ # Do not set this db to the same as development or production.
255
+ test:
256
+ <<: *default
257
+ database: LuggageMGT_test
258
+
259
+ # As with config/secrets.yml, you never want to store sensitive information,
260
+ # like your database password, in your source code. If your source code is
261
+ # ever seen by anyone, they now have access to your database.
262
+ #
263
+ # Instead, provide the password as a unix environment variable when you boot
264
+ # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
265
+ # for a full rundown on how to provide these environment variables in a
266
+ # production deployment.
267
+ #
268
+ # On Heroku and other platform providers, you may have a full connection URL
269
+ # available as an environment variable. For example:
270
+ #
271
+ # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
272
+ #
273
+ # You can use this database configuration with:
274
+ #
275
+ # production:
276
+ # url: <%= ENV['DATABASE_URL'] %>
277
+ #
278
+ production:
279
+ <<: *default
280
+ host: <%= ENV['DB_HOST'] %>
281
+ database: <%= ENV['DB_DATABASE'] %>
282
+ username: <%= ENV['DB_USERNAME'] %>
283
+ password: <%= ENV['DB_PASSWORD'] %>
284
+ socket: /var/lib/mysql/mysql.sock
217
285
  ```

5

修正

2020/09/21 08:33

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -48,6 +48,14 @@
48
48
 
49
49
  という風になっており、dbに接続できていないことを確認できました。
50
50
 
51
+ host部分をdbにしたり、
52
+ compose.ymlのdbに
53
+ ```
54
+ volumes:
55
+ - ./tmp/db:/var/lib/mysql/data
56
+ ```
57
+ を追記してもエラーでした。
58
+
51
59
  現状のエラーですが、
52
60
  ```
53
61
  docker-compose run web rails db:create RAILS_ENV=production

4

修正

2020/09/20 18:03

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -71,7 +71,7 @@
71
71
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
72
72
  username: root
73
73
  password: password
74
- host: db
74
+ host: localhost
75
75
  socket: /tmp/mysql.sock
76
76
 
77
77
  development:
@@ -80,7 +80,7 @@
80
80
 
81
81
  test:
82
82
  <<: *default
83
- host: db
83
+ host: localhost
84
84
  database: LuggageMGT_test
85
85
 
86
86
  production:
@@ -89,6 +89,7 @@
89
89
  database: <%= ENV['DB_DATABASE'] %>
90
90
  username: root
91
91
  password: <%= ENV['DATABASE_PASSWORD'] %>
92
+ socket: /var/lib/mysql/mysql.sock
92
93
  ```
93
94
 
94
95
  docker-compose.yml

3

修正

2020/09/20 17:55

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -7,12 +7,20 @@
7
7
  と入力したら、次の様なエラーが出てしまいました。
8
8
 
9
9
  ```
10
- Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
10
+ Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2 "No such file or directory")
11
11
  ```
12
12
 
13
+ #行ったこと
13
14
 
15
+ mysqlが起動していないと仮説を立て、
16
+ ```
17
+ sudo service mysqld start
18
+ Starting mysqld: [ OK ]
19
+ ```
20
+ となったが、エラーは変わりませんでした。
14
21
 
22
+
15
- まず、mysql.sockの場所が曖昧でしたので、
23
+ mysql.sockの場所が曖昧でしたので、
16
24
  ```
17
25
  mysql_config --socket
18
26
  ```
@@ -20,14 +28,37 @@
20
28
  ```
21
29
  /tmp/mysql.sock
22
30
  ```
23
- と返ってきたのであわせてdatabaseを変更しましたが、エラーは変わらなかったです。
31
+ と返ってきたのであわせて下記の様にdatabaseを変更しましたが、エラーは変わらなかったです。
24
32
  ```
33
+ default: &default
34
+ adapter: mysql2
35
+ encoding: utf8
36
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
37
+ username: root
38
+ password: password
39
+ host: db
40
+ socket: /tmp/mysql.sock
41
+ ```
42
+
43
+
44
+ 次に、エラーログを確認したところ、
45
+ ```
46
+ Unknown MySQL server host 'db' (25) (Mysql2::Error::ConnectionError)
47
+ ```
48
+
49
+ という風になっており、dbに接続できていないことを確認できました。
50
+
51
+ 現状のエラーですが、
52
+ ```
25
53
  docker-compose run web rails db:create RAILS_ENV=production
26
54
  ```
27
55
  は通過するのですが、
56
+
57
+
28
- ``
58
+ ```
29
59
  docker-compose run web rails db:migrate RAILS_ENV=production
30
60
  ```
61
+
31
62
  だけ通りません。
32
63
 
33
64
  ご教授願います。
@@ -73,9 +104,6 @@
73
104
  - db
74
105
  tty: true
75
106
  command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
76
- environment:
77
- RAILS_ENV: development
78
- DATABASE_URL: mysql2://root:root@localhost:3306
79
107
  volumes:
80
108
  - .:/app_name
81
109
 
@@ -91,4 +119,90 @@
91
119
  volumes:
92
120
  bundle:
93
121
  mysql_data:
122
+ ```
123
+
124
+ dockerfile
125
+ ```
126
+ FROM ruby:2.5.3
127
+ RUN apt-get update -qq && \
128
+ apt-get install -y build-essential \
129
+ libpq-dev \
130
+ nodejs
131
+
132
+ RUN mkdir /app_name
133
+ ENV APP_ROOT /app_name
134
+ WORKDIR $APP_ROOT
135
+
136
+ ADD ./Gemfile $APP_ROOT/Gemfile
137
+ ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock
138
+
139
+ RUN bundle install
140
+ ADD . $APP_ROOT
141
+ ```
142
+
143
+ (関係ないかもですが、)
144
+ circleci/config.yml
145
+ ```
146
+ version: 2
147
+ jobs:
148
+ build:
149
+ docker:
150
+ - image: circleci/ruby:2.5.3-node-browsers
151
+ environment:
152
+ RAILS_ENV: 'test'
153
+
154
+ - image: circleci/mysql:5.6
155
+ environment:
156
+ MYSQL_ROOT_PASSWORD: "password"
157
+ MYSQL_ROOT_HOST: "%"
158
+
159
+ working_directory: ~/app_name
160
+
161
+ steps:
162
+ - checkout
163
+ - restore_cache: # キャッシュを読み込む
164
+ keys:
165
+ - gem-cache-v1-{{ checksum "Gemfile.lock" }}
166
+ - gem-cache-v1-
167
+
168
+ - run:
169
+ name: Bundle Install
170
+ command: bundle check --path vendor/bundle || bundle install --deployment
171
+
172
+ - save_cache: # キャッシュを保存する
173
+ key: gem-cache-v1-{{ checksum "Gemfile.lock" }}
174
+ paths:
175
+ - vendor/bundle
176
+
177
+ - run:
178
+ name: Wait for DB
179
+ command: dockerize -wait tcp://127.0.0.1:3306 -timeout 120s
180
+ - run: bundle exec rake db:create
181
+ - run: bundle exec rake db:schema:load
182
+ - run:
183
+ name: run tests
184
+ command: |
185
+ mkdir /tmp/test-results
186
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
187
+ bundle exec rspec --format progress \
188
+ --out /tmp/test-results/rspec.xml \
189
+ --format progress \
190
+ $TEST_FILES
191
+ - store_test_results:
192
+ path: /tmp/test-results
193
+ - store_artifacts:
194
+ path: /tmp/test-results
195
+ destination: test-results
196
+
197
+ - add_ssh_keys:
198
+ fingerprints:
199
+ - "1f:d5:4b:1c:ed:c1:92:6e:47:a1:e0:18:a0:ff:27:ca"
200
+
201
+ - deploy:
202
+ name: Capistrano deploy
203
+ command: |
204
+ if [ "${CIRCLE_BRANCH}" != "master" ]; then
205
+ exit 0
206
+ fi
207
+ bundle exec cap production deploy unicorn:restart
94
208
  ```

2

修正

2020/09/20 17:52

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,20 +1,17 @@
1
1
  お世話になっております。
2
2
  現在、個人アプリ制作で、railsとdocker,mysql,circleCIを用いて、本番環境の環境構築をしています。
3
3
 
4
- 初めはできていたのですが、色々といじっていたら、ローカルで次の様なエラーが出てしまいました。
5
-
6
4
  ```
7
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 "No such file or directory")
8
- Couldn't create 'LuggageMGT_development' database. Please check your configuration.
5
+ docker-compose run web rails db:migrate RAILS_ENV=production
9
- rails aborted!
10
6
  ```
7
+ と入力したら、次の様なエラーが出てしまいました。
11
8
 
12
- 本番環境では、下記のエラーです。
13
9
  ```
14
- Mysql2::Error::ConnectionError: Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")
10
+ Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
15
11
  ```
16
12
 
17
13
 
14
+
18
15
  まず、mysql.sockの場所が曖昧でしたので、
19
16
  ```
20
17
  mysql_config --socket
@@ -24,10 +21,15 @@
24
21
  /tmp/mysql.sock
25
22
  ```
26
23
  と返ってきたのであわせてdatabaseを変更しましたが、エラーは変わらなかったです。
27
- 初学者ですが、丸々2日環境構築で苦戦してしまっています。
24
+ ```
28
- サイトで該当することは色々と試してみたのですが、結局元に戻ってきてしまいました...。
25
+ docker-compose run web rails db:create RAILS_ENV=production
26
+ ```
27
+ は通過するのですが、
28
+ ``
29
+ docker-compose run web rails db:migrate RAILS_ENV=production
30
+ ```
31
+ だけ通りません。
29
32
 
30
-
31
33
  ご教授願います。
32
34
 
33
35
  database.yml
@@ -38,16 +40,16 @@
38
40
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
39
41
  username: root
40
42
  password: password
41
- host: 127.0.0.1
43
+ host: db
42
44
  socket: /tmp/mysql.sock
43
-
45
+
44
46
  development:
45
47
  <<: *default
46
48
  database: LuggageMGT_development
47
49
 
48
50
  test:
49
51
  <<: *default
50
- host: 127.0.0.1
52
+ host: db
51
53
  database: LuggageMGT_test
52
54
 
53
55
  production:
@@ -56,7 +58,6 @@
56
58
  database: <%= ENV['DB_DATABASE'] %>
57
59
  username: root
58
60
  password: <%= ENV['DATABASE_PASSWORD'] %>
59
- socket: /tmp/mysql.sock
60
61
  ```
61
62
 
62
63
  docker-compose.yml

1

修正

2020/09/20 17:04

投稿

keisuke.F
keisuke.F

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  お世話になっております。
2
2
  現在、個人アプリ制作で、railsとdocker,mysql,circleCIを用いて、本番環境の環境構築をしています。
3
3
 
4
- 初めはできていたのですが、色々といじっていたら、ローカル、本番環境ともに次の様なエラーが出てしまいました。
4
+ 初めはできていたのですが、色々といじっていたら、ローカル次の様なエラーが出てしまいました。
5
5
 
6
6
  ```
7
7
  Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 "No such file or directory")
@@ -9,6 +9,12 @@
9
9
  rails aborted!
10
10
  ```
11
11
 
12
+ 本番環境では、下記のエラーです。
13
+ ```
14
+ Mysql2::Error::ConnectionError: Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")
15
+ ```
16
+
17
+
12
18
  まず、mysql.sockの場所が曖昧でしたので、
13
19
  ```
14
20
  mysql_config --socket
@@ -19,7 +25,9 @@
19
25
  ```
20
26
  と返ってきたのであわせてdatabaseを変更しましたが、エラーは変わらなかったです。
21
27
  初学者ですが、丸々2日環境構築で苦戦してしまっています。
28
+ サイトで該当することは色々と試してみたのですが、結局元に戻ってきてしまいました...。
22
29
 
30
+
23
31
  ご教授願います。
24
32
 
25
33
  database.yml