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

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

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

Sequel Proは、Mac OS X向けMySQLフロントエンドです。GUIからのMySQLの操作・管理が可能になります。強力なクエリ編集、多彩なエンコーディングオプションのサポートなど多くの機能を備えています。

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回答

2183閲覧

heroku上でheroku run rake db:migrateでマイグレーションが出来ない

widget11

総合スコア221

Sequel Pro

Sequel Proは、Mac OS X向けMySQLフロントエンドです。GUIからのMySQLの操作・管理が可能になります。強力なクエリ編集、多彩なエンコーディングオプションのサポートなど多くの機能を備えています。

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グッド

1クリップ

投稿2018/09/30 15:58

編集2018/09/30 17:41

環境
・ruby on rails 5.2
・heroku
・ClearDB MySQL

類似の質問1
類似の質問2

タイトル通りの問題が起きております。
既にherokuのマスターブランチにはpushが成功している状態で、あとはheroku run rake db:migrateを実行しマイグレーションを行うだけだったのですが、、、、以下のようなエラーが出て失敗します(念の為伏せ文字にしてます。。。)

Mysql2::Error::ConnectionError: Access denied for user 'b8.........'@'ip-..-..-...-....ec2.internal' (using password: YES)

仕様しているDBはmysql2です。
ClearDBアドオンを用いてDBの設定をMySQL2に変えており、heroku configで開いたDATABASE_URL:~~~の箇所はDATABASE_URL: mysql2://~~~~~reconnect=true
としっかりとMySQL2になっているのでここは問題ではないと感じております。

エラーログをみるとAccess denied for user 'b88.......' となっており、heroku側のmysqlから拒否られてる
感じなのですがどう解決すればよいでしょうか?何かheroku側で設定すべきなのでしょうか?
一応なぜエラーが吐かれているか分からないので、database.ymlのproductionの設定も載せます。

production: <<: *default database: アプリ名_production username: アプリ名 password: <%= ENV['アプリ名_DATABASE_PASSWORD'] %>

いつもローカルでは特にパスワードとかは設定せずsequelproを使ってDBの中身をみたりしていたので、調べていて本番環境のパスワードは環境変数越しに読み込むべきと知りました。
ちなみにこの環境変数ってのをherokuにおいてどこで設定すればよいのも分からず、、、もしかしたらこの環境変数を設定していないせいなのではないかと考えております。。。
他者さんの質問を見ますとpoorやらhostなど色々設定されている姿も見受けられ、設定項目が足りないのではないかと思いました、、、
あと一歩でweb上で自分が作ったサービスが見られそうなのに非常に悔しいです。。。どうしてもデプロイしてみたいです。。。宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

herokuではデフォルトのデータベースはpostgresqlで、mysql使用時には設定が必要だったはずです。
mysqlにこだわらないのであればpostgresqlのアドオンをherokuに追加すれば簡単に済みます。
どうしてもmysqlじゃないとダメなのであれば公式ページ等で設定方法を調べてみましょう。


まるまる質問文にやっていたこととして書いてあったので誤答

[以下追記]
database.ymlのpassword部分にENVを使用していますが、
この参照ファイルがgitに含まれていないのではないでしょうか?

投稿2018/09/30 16:10

編集2018/10/01 02:15
dice142

総合スコア5158

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

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

widget11

2018/09/30 16:17

ご回答ありがとうございます。 一応質問内容に書いているのですが、ClearDBアドオンを用いて、DATABASE_URL: mysql2://~~~とmysqlに設定を変更しているはずなのですが。。。。configで確認してみてもmysql2に変わっています。。。多分異なる内容でエラーが出ている気がするのですが、、、
dice142

2018/09/30 16:20

失礼しました。携帯から見ているもので見逃してました…。
dice142

2018/10/01 02:16

改めて確認して新たな可能性を回答に追記しました。
widget11

2018/10/01 05:32

ご回答ありがとうございます! ちなみになのですがENVの参照ファイルはどこにどのように記述すればよいのでしょうか?調べても出てこず。。。 また当然、ファイル追加したら再度add、commit、pushしなくてはいけませんよね?基本的な質問で申し訳ございません。
dice142

2018/10/01 05:38

> ENVの参照ファイルはどこにどのように記述すればよいのでしょうか? 環境変数(ENVで参照するもの)になんのgemを使ってるかによりますね。有名所だと「dot-env」でしょうか。 > ファイル追加したら再度add、commit、pushしなくてはいけませんよね? 基本的にはそうなります。 ただし、環境変数用のファイルやログファイルなど、追加するべきものではない場合は 「.gitignore」ファイルに指定する必要があり、それらのファイルはaddなどする必要ありません。 (する必要がないというかしてはいけません)
widget11

2018/10/01 09:37

ありがとうございます。今は出先なので確認できないのですが家に帰って確認します。 ちなみに流れとしては gem 'dotenv-rails' をbundle installし、.envファイルを作成しここで環境変数を初期化、そのあと.gitignoreファイルに.envと追記すればよろしいのでしょうか? このサイトを参考に致しました。 http://vdeep.net/rubyonrails-dotenv
dice142

2018/10/01 09:38

dot-envを使用する際にはそれで構いませんが、既に「<%= ENV['アプリ名_DATABASE_PASSWORD'] %>」と記載されてたので、何かしら環境変数用のgemを使用されているのではないかと思うのですが。
widget11

2018/10/01 11:41

railsプロジェクト(5.2)を立ち上げた際にデフォルトで書かれていたものだと思うのですが、環境変数用のgemが最初から入っていたということでしょうか?調べてみたところcredentials.yml.encなるファイルがそれっぽい気もするのですが、、、
widget11

2018/10/01 17:10

まだデプロイはできていないのですが一旦この問題は解決出来ました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問