注)本ページに出てくる、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かな???と思い、
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'] %>
の部分を直接パスワードに置き換えることにしました。
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値は存在しない値です。