tl;dr
$ mysql -u root -p
でMySQLに入り
mysql> create user 'hoge'@'localhost' identified by 'パスワード'
でユーザーを作成し
mysql> GRANT ALL ON hugahuga_development.* TO 'hoge'@'localhost';
で作成したユーザーにDBを触る権限を与える。
状態
Mysql2::Error::ConnectionError: Access denied for user 'hoge'@'localhost' (using password: NO)
DBをMySQL設定したときにありがちなエラーだが、該当する'hoge@localhost'というユーザーを設定した覚えもなく、パスワードに心当たりもない。
対策
その際の解決策として、
$ mysql -u root -p
でMySQLにroot権限で入り、'hoge@localhost'というユーザーを作成し直すという方法を試みた。
mysql> create user 'hoge'@'localhost' identified by 'パスワード'
変更した後にDBをdb:create等でDBを触ってみると、
Mysql2::Error::ConnectionError (Access denied for user 'hoge'@'localhost' to database 'hugahuga_development'):
次はユーザーではなくデータベースへのアクセスを拒否された。
hoge@localhostに該当のデータベースを触る権限がないようなので、先ほどと同じようにMySQLにroot権限で入って
$ mysql -u root -p
下記コマンドで権限を与える
mysql> GRANT ALL ON hugahuga_development.* TO 'hoge'@'localhost';
これで無事DBを触るコマンドを叩くことが出来た。