MySQLにrootパスワードを設定した後に、rails sをしようとするとMySQLにアクセスする事が出来ずに、下記の様なエラーが発生した。
こらはパスワードがMysqlにアクセスするパスワードを設定していないが為に起こるエラー。
つまりdatebase.ymlファイル内のpassword:に値を入力することでエラーが解消できる。
1.まずはconfig/database.ymlを開く
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /tmp/mysql.sock
ここで注意しなければいけない事はdefaultのpasswordを直接入力してしまうケース。
defaultのpassword:に直接自分のパスワードを書いてしまうと、誤ってGitHubにコミット、プッシュした時に自分のパスワードを悪用されてしまう危険性があります。
その為、このケースではパスワードの代わりに環境変数と呼ばれるものを使用します。
環境変数とはコンピュータ自体が持てる変数のようなものです。
・やってはいけない例
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: あなたのMySQLのrootパスワード(例:aiueo1234)
socket: /tmp/mysql.sock
・正しい例
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: <%= ENV['MYSQL_PASSWORD'] %>
socket: /tmp/mysql.sock
この様にpasswordに<%= ENV['MYSQL_PASSWORD'] %>を記入することで、環境変数を利用する下準備が出来ました。
残りは肝心の環境変数自体をターミナルで定義するだけです!
・手順
1..ターミナルを開きホームディレクトに移動
$ cd ~
2.vim .bash_profileを開く
$ vim .bash_profile
enterを押して画面が切り替わったら
1.[i]を押してインサートモード入り
2.export MYSQL_PASSWORD='あなたのMySQLのrootパスワード'
を入力
3.Escキーを押してインサートモード終了
4.[:wq]と入力して保存&終了
上記の手順は 2. でデータベースのパスワードをbash_profileで定義する事でdatabase.ymlから呼び出せる様になるという事です。
そして最後にbash_profileは、
ターミナルを開き直すか、sourceコマンドで更新しないと反映されないという性質がある 為、最後にターミナルを開き直すか、以下のコマンドを入力する。
$ source ~/.bash_profile
これで設定が反映されたので rails s をすると正常に起動する。