0
1

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-09-22

はじめに

今回は、Mysqlのパスワードを変更したことにより、発生したエラーの解消方法についてまとめました。

※おことわり※
基本的に学習内容のアウトプットです。
初学者であるため、間違い等あればご指摘いただけますと嬉しいです。

この記事の目的

以下内容のアウトプット

  • Mysqlのエラーとその解消方法
  • database.ymlにMySQLのパスワードを設定する方法

開発環境

  • Ruby 2.6.5
  • Ruby on Rails 6.0.0
  • MySQL 14.14

この記事の内容

  1. Mysqlのエラーの概要
  2. Mysqlのパスワードを確認
  3. database.ymlにMySQLのパスワードを設定

1. Mysqlのエラーの概要

Mysqlのパスワードを設定(変更)したことにより、ローカルでサーバを立ち上げた際にエラーが発生しました。

※エラー解消のプロセスでNOとYESのエラーに遭遇しましたが、最終的にエラー解消できました。

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

Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: YES)
  • エラーの内容
    rootユーザのパスワードが正しくないため、データベースにアクセスできない。

  • エラーの原因
    database.ymlのpasswordが設定できていなかったため。

  • エラーの解消
    database.ymlにパスワードを追記する。

2. Mysqlのパスワードを確認

念の為、現在のパスワードが正しく登録できているか確認します。

手順
mysql -u root -pを実行する
Enter password:と出力されるのでパスワードを入力
Welcome to the MySQL monitor...省略と出力されたら成功

% mysql -u root -p
Enter password: # パスワードを入力する

3. database.ymlにMySQLのパスワードを設定

シェルを用いて環境変数を定義し、ymlファイルにパスワードを追記します。

手順
vim ~/.zshrcを実行
iキーをクリックし、インサートモードに移行
③zshの内部に、以下の記述を行う

export DATABASE_PASSWORD='先程確認したパスワード'

escキーをクリック → :wqを入力 → Enterキーをクリック
source ~/.zshrcを実行
⑥database.ymlにパスワードを追加する

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

production:
  <<: *default
  database: XXX_production
  username: XXX
  password: <%= ENV['DATABASE_PASSWORD'] %>  # 追記

rails db:migrateを実行し、エラーが出なければ成功です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1