Error creating Rails database and cannot create db:

Asked 1 months ago, Updated 1 months ago, 2 views

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?

[email protected]:~/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:[email protected]/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']%>

ruby-on-rails mysql

2022-09-30 13:57

1 Answers

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.


2022-09-30 13:57

If you have any answers or tips


© 2022 OneMinuteCode. All rights reserved.