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

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

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

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

Q&A

1回答

1718閲覧

Mysql2::Error::ConnectionError Unknown MySQL server host により、トップページが表示されません。。

issei0211

総合スコア0

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/08/16 20:01

編集2020/08/18 11:04

発生している問題・エラーメッセージ

プログラミング初学者です。
Rails + MySQL を用いたアプリを、HerokuとGithubを連携しデプロイしてみましたが、
Mysql2::Error::ConnectionError in HomeController#top
Unknown MySQL server host 'hostDB' (0)
というエラーが発生し、トップページが表示されません。

状況

・ローカル環境では正常に動いており、デプロイ後の本番環境にて上記のエラーが発生。
そのため、database.ymlの書き方に問題がある?と考えています。

該当のソースコード

Ruby

1database.yml 2 3# SQLite version 3.x 4# gem install sqlite3 5# 6# Ensure the SQLite 3 gem is defined in your Gemfile 7# gem 'sqlite3' 8# 9# default: &default 10 # adapter: sqlite3 11 # pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 12 # timeout: 5000 13 14# MySQL default 15default: &default 16 adapter: mysql2 17 encoding: utf8 18 pool: 5 19 # username: <%= ENV['RAILS_DATABASE_USER'] %> 20 # password: <%= ENV['RAILS_DATABASE_PASSWORD'] %> 21 # socket: /var/lib/mysql/mysql.sock 22 23# development: 24 # <<: *default 25 # database: db/development.sqlite3 26 27# Warning: The database defined as "test" will be erased and 28# re-generated from your development database when you run "rake". 29# Do not set this db to the same as development or production. 30# test: 31 # <<: *default 32 # database: db/test.sqlite3 33 34# production: 35 # <<: *default 36 # adapter: postgresql 37 # encoding: unicode 38 # pool: 5 39 40# MySQLの導入 41development: 42 <<: *default 43 adapter: mysql2 44 encoding: utf8 45 reconnect: false 46 database: tabletennis_app 47 pool: 5 48 username: root 49 password: Yosshi.0211401@gmail.com 50 host: localhost 51 52test: 53 <<: *default 54 adapter: mysql2 55 encoding: utf8 56 reconnect: false 57 database: tabletennis_app 58 pool: 5 59 username: root 60 password: Yosshi.0211401@gmail.com 61 host: localhost 62 63# production: 64 # <<: *default 65 # adapter: mysql2 66 # encoding: utf8 67 # reconnect: false 68 # database: tabletennis_app 69 # pool: 5 70 # username: root 71 # password: Yosshi.0211401@gmail.com 72 # host: localhost 73 74# MySQL デプロイ設定 75production: 76 <<: *default 77 # url: <%= ENV['DATABASE_URL'] %> 78 # username: <%= ENV['DATABASE_USERNAAME'] %> 79 # password: <%= ENV['DATABASE_PASSWORD'] %> 80 # master_key: <%= ENV['RAILS_MASTER_KEY'] %> 81 url: mysql2://Issei:issei0211@hostDB/tabletenniswebDB?reconnect=true 82 database: tabletennis_app 83 username: Issei 84 host: hostDB 85 password: issei0211 86 socket: /var/lib/mysql/mysql.sock

Ruby

1routes.rb 2 3Rails.application.routes.draw do 4 # ログインページのルーティング 5 get "login" => "users#login_form" 6 # ログインページのデータを送信するためのルーティング 7 post "login" => "users#login" 8 # ログアウトのルーティング 9 post "logout" => "users#logout" 10 11 # ユーザー編集ページのデータを送信するためのルーティング 12 post "users/:id/update" => "users#update" 13 # ユーザー編集ページのルーティング 14 get "users/:id/edit" => "users#edit" 15 # ユーザー登録ページのデータを送信するためのルーティング 16 post "users/create" => "users#create" 17 # ユーザー登録ページのルーティング 18 get "signup" => "users#new" 19 # ユーザー一覧ページのルーティング 20 get "users/index" => "users#index" 21 # ユーザー詳細ページのルーティング 22 get "users/:id" => "users#show" 23 24 # 投稿検索ページのルーティング 25 get "posts/search" => "posts#search" 26 27 # 投稿一覧ページのルーティング 28 get "posts/index" => "posts#index" 29 # 新規投稿ページのルーティング 30 get "posts/new" => "posts#new" 31 # 投稿詳細ページのルーティング 32 get "posts/:id" => "posts#show" 33 # 新規投稿ページのデータを送信するためのルーティング 34 post "posts/create" => "posts#create" 35 # 投稿編集ページへのルーティング 36 get "posts/:id/edit" => "posts#edit" 37 # 投稿編集ページのデータを送信するためのルーティング 38 post "posts/:id/update" => "posts#update" 39 # 投稿削除のルーティング 40 post "posts/:id/destroy" => "posts#destroy" 41 42 # トップページへのルーティング 43 get "/" => "home#top" 44 # アバウトページへのルーティング 45 get "about" => "home#about" 46 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 47end 48
$heroku config CLEARDB_CHARCOAL_URL: mysql://b412cdd05d4c47:7349b72a@us-cdbr-east-02.cleardb.com/heroku_2267c1a737817b9?reconnect=true CLEARDB_DATABASE_URL: mysql://b0a500b90a7dbc:b0d7cffd@us-cdbr-east-02.cleardb.com/heroku_6a943c67582777e?reconnect=true DATABASE_URL: mysql2://Issei:issei0211@hostDB/tabletenniswebDB?reconnect=true DB_HOSTNAME: hostDB DB_NAME: tabletenniswebDB DB_PASSWORD: issei0211 DB_PORT: 3306 DB_USERNAME: Issei LANG: en_US.UTF-8 RACK_ENV: production RAILS_ENV: production RAILS_LOG_TO_STDOUT: enabled RAILS_SERVE_STATIC_FILES: enabled SECRET_KEY_BASE: 733e79fb4ab0ee171ec0a2e497804446b6c2b6f8893aab11ec9e15a1475256d353d7fd2ea92f296db3ecec74050fba47dad4ac779ad7ced2492a3d187e27c780

*CLEARDB_CHARCOAL_URLはひとつ、間違って作成してしまっています。

試したこと

・$git push heroku masterの後に、$heroku run rails db:migrateも欠かさずしている。
・Herokuの再起動
・database.ymlの編集後の$bundle installもしている。
などなど、、

development.logも確認してみましたが、
・ActionController::RoutingError (No route matches [GET] "/home/top"):

・ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

bin/rails db:migrate RAILS_ENV=development

): ← こちらはrails db:migrate RAILS_ENV=developmentを実行済み

・ActionController::RoutingError (No route matches [GET] "/top.jpg"):
などというようなエラーを見かけましたが、これらをどうすればよいのかはわかりませんでした。

補足情報

2、3日間このエラーを解決しようと色々試みましたが、万策つきました。
未熟な初学者なため、知識不足が否めませんが回答していただけると幸いです。

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

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

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

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

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

issei0211

2020/08/18 11:06

ご指摘ありがとうございます。 編集し直し、更新しました。
guest

回答1

0

$heroku run rails db:migrate を実行しているとのことですが、成功していますか?
と言いますのは herokuのdatabaseはpgなので、mysqlではつながらないと思うのです。
herokuにmysqlもinstallしたというのでしたら別ですが

投稿2020/08/16 22:48

winterboum

総合スコア23376

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

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

issei0211

2020/08/18 11:17

回答ありがとうございます! 実行したところ、 Mysql2::Error::ConnectionError: Unknown MySQL server host 'hostDB' (2) というエラーが発生していました。 また、$heroku addons:create cleardb:ignite を実行していて、HerokuでのMySQL拡張機能を設定しているつもりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問