I am building an environment to develop the rails application, but when db:create, an error occurred and I cannot create a database.
I searched for the error statement, but I don't know how to solve it.
Could someone please let me know?
olivemochi@DESKTOP-1BQH39C:~/testapp$bin/rails db:create
Mysql2::Error::ConnectionError: Access denied for user 'olivemochi' @'localhost' to database 'testapp_development'
Couldn't create'testapp_development'database.Please check your configuration.
rails aborted!
ActiveRecord::StatementInvalid:Mysql2::Error::ConnectionError: Access denied for user 'olivemochi' @'localhost' to database 'testapp_development'
/home/olivemochi/testapp/bin/rails: 9:in`<top(required)>'
/home/olivemochi/testapp/bin/spring: 15:in`<top(required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
Mysql2::Error::ConnectionError: Access denied for user 'olivemochi' @'localhost' to database 'testapp_development'
/home/olivemochi/testapp/bin/rails: 9:in`<top(required)>'
/home/olivemochi/testapp/bin/spring: 15:in`<top(required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP=>db:create
(See full trace by running task with --trace)
The code for config/database.yml is as follows:
#MySQL.Version 5.5.8 and update 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 —utf8mb4
pool:<%=ENV.fetch("RAILS_MAX_THREADS"){5}%>
username —olivemochi
password: "Password"
socket: /var/run/mysqld/mysqld.sock
development:
<<:* default
database:testapp_development
# Warning: The database defined as "test" will be used and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<:* default
database —testapp_test
# As with config/credentials.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever see by anyone, they now have access to your database.
#
# Install, provide the password as a unix environment variable when you boot
# The app.Read https://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 —testapp_production
username —testapp
password:<%=ENV['TESTAPP_DATABASE_PASSWORD']%>
The reason was that there was no permission of the newly created user for developing the rails app.After logging in as root user and granting permission to new user, db:create was successful.
© 2024 OneMinuteCode. All rights reserved.