30代未経験からWebエンジニアになった私のプログラミング学習日記

【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© 30代未経験からのプログラミング , 2021 All Rights Reserved.