- 公開日:2016年05月17日
記事概要
rake db:create失敗時に発生するMysql2::Error: Access denied for userの修正方法
環境
- rbenv
- bundler
- rails 4.2.5
- ruby 2.3.0
はじめに
Mysql2::Error: Access denied for userは、Railsでプロジェクトを開発するたびに、毎回やらかしてしまうエラーです。
なので、修正方法を記載しておきます。
Mysql2::Error: Access denied for user
rake db:createの実行時によく発生するエラーです。
原因は、databaseに既にユーザーが存在しているからです。
修正方法
mysqlのユーザー情報を調査して、ユーザーが存在すれば削除、もしくはdatabaseを作成するユーザーを新規追加します。
ユーザー情報は、以下のコマンドで調査します。
mysql
mysql> SELECT USER FROM mysql.user;
既にユーザーが存在している場合は、ユーザーを削除してからrake db:createを実行します。
もう一つの方法として、database.ymlのusernameにmysql.userに存在しないユーザー名を指定することで、対応できます。
{project_folder}/config/database.yml
staging: <<: *default username: db_staging ← mysql.userに存在しないユーザー名 password: db_staging database: db_staging
個人的には、後者の対応方法をお勧めします。
まとめ
Railsのdb:createやdb:migrateは癖の強いコマンドです。
プロジェクトではドキュメントを残しておくことをお勧めします。
以上。
PICK UP オススメ書籍
0 件のコメント:
コメントを投稿