Home>
I want to achieve and what is happening

I am trying to deploy to AWS by referring to the following article.
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1

When I try "rake db: create RAILS_ENV = production" in the "MySQL settings" item here, I get the following error.
I've tried various things, but I feel like I'm stuck, but I'd like to know how to deal with it.

Couldn't create'portfolio_production' database. Please check your configuration.
rake aborted!
Mysql2 :: Error :: ConnectionError: Access denied for user'portfolio' @'localhost' (using password: NO)
Tasks: TOP =>db: create
(See full trace by running task with --trace)
code
What I tried

As a result of investigation, it was said that the cause was that the password was blank, so I set the password.
I referred to the following article.
https://qiita.com/Kaisyou/items/17142ff2d080d565fedc

In vim config/database.yml, fill in as follows.

#MySQL. Versions 5.1.10 and up are supported.
#
#Install the MySQL driver
# gem install mysql2
#
#Ensure the MySQL gem is defined in your Gemfile
# gem'mysql2'
#
# And be sure to use new-style password hashing:
# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default:&default
  adapter: mysql2
  encoding: utf8
  pool:<% = ENV.fetch ("RAILS_MAX_THREADS") {5}%>
  username: root
  password: taishiman1026
  host: localhost
development:
<<: * default
  database: portfolio_development
#Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test: test:
<<: * default
  database: portfolio_test
# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
#ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
#production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
#available as an environment variable. For example:
#
# DATABASE_URL = "mysql2: // myuser: mypass @ localhost/somedatabase"
#
#You can use this database configuration with:
#
#production:
# url:<% = ENV ['DATABASE_URL']%>
#
production:
<<: * default
  database: portfolio_production
  username: portfolio
  password:<% = ENV ['PORTFOLIO_DATABASE_PASSWORD']%>
  • Answer # 1

    <% = ENV ['PORTFOLIO_DATABASE_PASSWORD']%>
    Isn't it nil?
    Does the environment variable PORTFOLIO_DATABASE_PASSWORD contain the password set in the DB?