

railsアプリ開発のため、環境構築しているのですが、db:create時にエラーが出てデータベース作成ができません。  
エラー文を検索してみたのですが、解決方法がわかりません。  
どなたかご教示いただけないでしょうか。

[code]

    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)
    
[/code]

config/database.ymlのコードは以下です。

[code]

    # MySQL. Versions 5.5.8 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: utf8mb4
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      username: olivemochi
      password: "パスワード"
      socket: /var/run/mysqld/mysqld.sock
    
    development:
      <<: *default
      database: testapp_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:
      <<: *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 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 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'] %>
    
[/code]


CC BY-SA 4.0
2020-04-16T20:58:04.400
65689
2022-04-13T00:02:20.297
2020-04-17T00:30:44.490
3060
30392
question
ruby-on-rails mysql
Railsのデータベース作成時にエラーが出てdb:createできません


railsアプリ開発用に新規作成したユーザーの権限が何もないことが原因でした。rootユーザーでログインし、新規ユーザーへ権限を付与するとdb:createできました。


CC BY-SA 4.0
2020-04-16T22:41:38.503
65690
2020-04-16T22:41:38.503
30392
65689
answer