web系エンジニアを目指す私、siが学習のアウトプットをメインにプログラミングについての記事を書いていきます。

【Rails】database.ymlにMySQLのパスワードを設定する方法!

 
この記事を書いている人 - WRITER -

 

こんにちは!

web系エンジニアとして自社開発企業への転職を目指して、

プログラミング学習中のsiです!

 

今回の記事ではdatabase.ymlでMySQLのパスワードを設定する方法について解説します!

 

以前、新規プロジェクトにてrails db:migrateを行った際に、

以下のようなエラーが出ました。

Mysql2::Error::ConnectionError: Access denied for user 
'root'@'localhost' (using password: YES)

その際、database.ymlにMySQLのパスワードを設定することで解決出来たので、今回はその時の設定方法について記事にしてみました^ ^

 

※使用シェルはzshです

また、この記事で出てくる「%」はプロンプトなので実際に入力する必要はありません

 

マシンスペック

 

参考までに私のマシンスペックをご紹介しておきます。

  • macOS Big Sur 11.5.1
  • Macbook Pro(13-inch,2020,Four Thunderbolt 3 ports)
  • intel Core i5
  • メモリ 16GB
  • ストレージ 512GB
  • 使用シェル zsh

 

パスワード設定方法

 

以下のように、database.ymlのpassword欄にMySQLのパスワードを入力する。

開発環境の場合は「パスワードA

本番環境の場合は「パスワードB」に入力する。

# database.yml

default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: パスワードA  # ここ
socket: /tmp/mysql.sock

development:
<<: *default
database: アプリ名_development

test:
<<: *default
database: アプリ名_test

production:
<<: *default
database: アプリ名_production
username: アプリ名
password: パスワードB  # ここ

しかし、database.ymlに直接パスワードを書いてしまっては、

セキュリティ上良くないので環境変数を使用して記述します。

 

以下の手順では、vimを使用します。

vimの操作について自信のない方は、ぜひこちらの過去記事を参考にしてみてください(^O^)/

 

1.まずvimで設定ファイルを開く

私の場合は.zshrcです^ ^

% vi .zshrc

 

2.末尾に、パスワードを環境変数に代入する記述を行う

export PASSWORD='MySQLで設定したパスワード'

 

3.設定ファイルに先程の記述を反映させる

% source ~/.zshrc

 

4.作業ディレクトリに移動後、

vimでdatabase.ymlを開く

% vi config/database.yml

 

5.以下のように追記する

default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: <%= ENV["PASSWORD"] %>  # ここ
socket: /tmp/mysql.sock

development:
<<: *default
database: アプリ名_development

test:
<<: *default
database: アプリ名_test

production:
<<: *default
database: アプリ名_production
username: アプリ名
password: 

私はとりあえず、開発環境だけに記述しました^ ^

 

この後rails db:migrateを行って、無事成功すればOKです(^^)v

 

最後に

 

今回はrails db:migrate実行時のエラーについて解説しました!

 

今後も、エラー解決をどんどんしていって

着実にレベルアップしていきたいと思います(^O^)/

 

最後まで読んでいただきありがとうございます!

 

今後も、どんどん記事投稿を行なっていくので、

よければ、応援の方お願い致します(*^ω^*)

 

それでは!

 

参考記事

 

 

この記事を書いている人 - WRITER -

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


Copyright© .i DO WHAT I WANT , 2021 All Rights Reserved.