2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Heroku 本番環境 [Mysql2::Error::ConnectionError: Access denied for user root@localhost (using password: NO)] エラー

Posted at

注)本ページに出てくる、usernameや、password、host値は存在しない値です。
#問題:

rails c production で User.createをしようとしたら、
Mysql2::Error::ConnectionError: Access denied for user 'b2a63e570bc849'@'52.204.50.03' (using password: NO)
と言われてしまいました。

ターミナル
$ heroku config #mysql周辺情報をチェックします。
# 注意 'mysql2://[ユーザ名]:[パスワード]@[ホスト名]/[スキーマ名]?reconnect=true' です。

CLEARDB_DATABASE_URL:     mysql://kefbwfffn349:31w1dd54@us-cdbr-iron-east-04.cleardb.net/heroku_sufbd6sjdhsb5d?reconnect=true
DATABASE_PASSWORD:        31w1dd54
DATABASE_URL:             mysql2://kefbwfffn349:31w1dd54@us-cdbr-iron-east-04.cleardb.net/heroku_sufbd6sjdhsb5d?reconnect=true

$ mysql -u kefbwfffn349 -h us-cdbr-iron-east-04.cleardb.net -p  #mysqlに入れるか?
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit # 入れました。

host,username,passwordはあってるのに、、、
となると,

検証

原因はエラー文の中のusing password: NOかな???と思い、

config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  username: root
  password: 
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

production:
  <<: *default
  database: heroku_sufbd6sjdhsb5d
  username: kefbwfffn349
  host: us-cdbr-iron-east-04.cleardb.net
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

password: <%= ENV['DATABASE_PASSWORD'] %>の部分を直接パスワードに置き換えることにしました。

config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  username: root
  password: 
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

production:
  <<: *default
  database: heroku_sufbd6sjdhsb5d
  username: kefbwfffn349
  host: us-cdbr-iron-east-04.cleardb.net
  password: 31w1dd54
  socket: /var/lib/mysql/mysql.sock

そしたら、mysqlに繋がった、、、とりあえずは助かった、、、
本来なら、password: <%= ENV['DATABASE_PASSWORD'] %>でheroku:configのDATABASE_PASSWORD(キー)が読み込まれて、31w1dd54(値)が取得されるはずなのに、、、
色々調べてみます。

注)本ページに出てくる、usernameや、password、host値は存在しない値です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?