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

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

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

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Ruby on Rails

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

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

2630閲覧

Unknown MySQL server host 'db' (0)エラーが消えない

tomsuma

総合スコア38

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Ruby on Rails

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

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/09/04 21:48

編集2020/09/04 22:51

rails sをするとこのようなエラーが出ます

docker-compose upコマンドでしかローカルホストにアクセスできなくなりました。

dockerを使うとはこういうことなのでしょうか

mysqlをインストールし直したり
port 番号を消してみたり、.envファイルを確認したり
したのですがエラーが消えません

イメージ説明

Mysql2::Error::ConnectionError at / Unknown MySQL server host 'db' (0)
database.yml default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: example # socket: /tmp/mysql.sock host: db development: <<: *default database: Books_development test: <<: *default database: Books_test production: <<: *default database: Books_production username: root password: <%= ENV['DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock
webpacker.yml # Note: You must restart bin/webpack-dev-server for changes to take effect default: &default source_path: app/javascript source_entry_path: packs public_root_path: public public_output_path: packs cache_path: tmp/cache/webpacker check_yarn_integrity: false webpack_compile_output: true # Additional paths webpack should lookup modules # ['app/assets', 'engine/foo/app/assets'] resolved_paths: [] # Reload manifest.json on all requests so we reload latest compiled packs cache_manifest: false # Extract and emit a css file extract_css: false static_assets_extensions: - .jpg - .jpeg - .png - .gif - .tiff - .ico - .svg - .eot - .otf - .ttf - .woff - .woff2 extensions: - .mjs - .js - .sass - .scss - .css - .module.sass - .module.scss - .module.css - .png - .svg - .gif - .jpeg - .jpg development: <<: *default compile: true # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules check_yarn_integrity: false # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: https: false host: localhost public: localhost:3035 hmr: false # Inline should be set to true if using HMR inline: true overlay: true compress: true disable_host_check: true use_local_ip: false quiet: false pretty: false headers: 'Access-Control-Allow-Origin': '*' watch_options: ignored: '**/node_modules/**' test: <<: *default compile: true # Compile test packs to a separate directory public_output_path: packs-test production: <<: *default # Production depends on precompilation of packs prior to booting for performance. compile: false # Extract and emit a css file extract_css: true # Cache manifest.json for performance cache_manifest: true
app.env POSTGRES_HOST=db PGUSER=mysql PGPASSWORD=mysql RAILS_ENV=development

同じエラー内容

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

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

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

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

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

m.ts10806

2020/09/04 22:35

タグ「teratail」は不要かと思います。 >初めて使うもので初心者すぎる質問申し訳ございません。 この手の自身を卑下するような表現も不要かと思います。「じゃあ謝らなくて済むくらい勉強してからきたら」と思う人もいるでしょうし(私は思った) 「初心者で」と思うのは結構ですが質問要件と関係ありませんし、質問には初心者アイコンをつけられるのでそれだけて充分です。
tomsuma

2020/09/04 22:50

ご指摘ありがとうございます。 以後気をつけます
guest

回答2

0

ベストアンサー

mysqlをインストールし直したり
port 番号を消してみたり、.envファイルを確認したり
したのですがエラーが消えません

MySQL を「インストール」する必要はありません
docker-compose up を行うと、自動的に MySQL イメージが pull されて
MySQL のコンテナーが起動します

参考: Ruby - localhostにアクセスできない|teratail

rails sをするとこのようなエラーが出ます

html

1Mysql2::Error::ConnectionError at / 2Unknown MySQL server host 'db' (0)

上記のエラーは db というホストが見つからないことを示しています
次のコマンドで db サービスが停止していないか確認します:

console

1docker-compose ps

StateUp でない場合は次のコマンドで原因を調査します:

console

1docker-compose logs db

Docker Compose でサービス間の通信を行う場合は
Compose ファイルで指定した各サービス名をホスト先として指定します

Docker のネットワークには
Compose ファイルで指定した各サービス名が通信先ホストの名前として登録されます

docker-compose up を実行したときのログを確認すると、
コンテナーが起動する前に Docker のネットワークが作成されていることが確認できます:

console

1$ docker-compose up 2Creating network "test-docker-289731_default" with the default driver 3Creating test-docker-289731_db_1 ... done 4Creating test-docker-289731_web_1 ... done

docker-compose upコマンドでしかローカルホストにアクセスできなくなりました。

dockerを使うとはこういうことなのでしょうか

まず Docker の振る舞いについて学習することをお奨めします

次の 10 分程度のトレーニングで遥かに Docker の習得スピードが上昇するでしょう:
Docker Desktop で 開発用 Web アプリを起動してみよう | ultra code

Docker の振る舞いに慣れたら、次は Compose ファイルの記法について
わからない部分を次の記事で確認しましょう:
docker-compose.yml の内容を理解しよう | ultra code

投稿2020/09/05 06:11

y_shinoda

総合スコア3272

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

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

tomsuma

2020/09/05 09:20

かしこまりました! 毎度丁寧なご対応ありがとうございます
guest

0

Unknown MySQL server host 'db'

database.ymlで
host:db
と指定されていますが、mysqlが動いているホストの名前は本当に「db」ですか?

app.envで
POSTGRES_HOST=db
PGUSER=mysql
と指定されていますが、これはPostgresの設定ですか?

投稿2020/09/05 04:12

technocore

総合スコア7225

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

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

tomsuma

2020/09/05 04:58 編集

ご回答ありがとうございます! mysqlでの開発を行っているのでMysqlの設定を行わせてもらっているつもりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問