実践ruby on rails 4 現場のプロから学ぶ本格webプログラミングをやっていて引っかかったのでメモ。
起こったエラー
$ bin/rake db:create Access denied for user 'root'@'localhost' (using password: YES)
database.ymlの内容
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: password socket: /tmp/mysql.sock
手順
1.パスワードを生成してする
2.MySQLにアクセス権限を持つユーザーを追加する
3.database.ymlを変更する
1. パスワードを生成する
$ mysql mysql> SELECT PASSWORD('mypass'); -> +-------------------------------------------+ | PASSWORD('mypass') | +-------------------------------------------+ | *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 | +-------------------------------------------+
7/30追記 この1の操作はパスワードではなくハッシュの生成でした。手順としては1.は不要でした。教えてくださりありがとうございました!
2. MySQLにアクセス権限を持つユーザーを追加する
$ mysql mysql> CREATE USER 'railsuser'@'localhost' IDENTIFIED BY 'mypass'; ->Query OK, 0 rows affected (0.15 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'railsuser'@'localhost'; Query OK, 0 rows affected (0.01 sec)
3.database.ymlを変更する
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: railsuser //追加したユーザー password: mypass //先程のパスワード socket: /tmp/mysql.sock