MySQL Ruby on Rails

MySQLのパスワード再設定方法(Macの場合)There is an issue connecting to your database with your username/password, username: root.

本サイトの記事内にアフィリエイト広告が含まれる場合があります。

MySQLのパスワード再設定方法のサムネイル画像

awayuki

音大出身。学生時代はフリーランスでWEB制作・開発しながら、2社で長期エンジニアインターンを経験しました(2年半)。 23卒で、自社開発ベンチャー企業に入社しエンジニア・デザイナーとして働き、2024年1月起業しました! このブログでは、ブログ開設方法・プログラミング・音大からエンジニアになれた方法など書いています。 お仕事依頼はお問い合わせフォームからお問い合わせお願いします。 Zenn

今回はMacでMySQLのパスワードが分からなくなってしまった場合の再設定方法について解説します。

Railsでサーバを立ち上げても、以下のエラーが出てしまい、立ち上がらないということが起きた。

ActiveRecord::DatabaseConnectionError: There is an issue connecting to your database with your username/password, username: root. (ActiveRecord::DatabaseConnectionError)

Please check your database configuration to ensure the username/password are valid.

これは最近、プログラミングを教えている方からのご質問なので、この前に何をどうしたかという手順は分かりません。

前提条件

  • Rails7
  • MySQL
  • bundlerで環境構築

MySQLのパスワード再設定手順

MySQLのユーザーのパスワードを忘れてしまった場合、パスワードをリセットする必要があります。

1. MySQLサーバーを停止する

まず、MySQLサーバーを停止します。ターミナルで次のコマンドを実行してください。

sudo mysql.server stop

2. セーフモードでMySQLを起動する

MySQLをセーフモード(パスワードなしでのログインが可能)で起動し、rootパスワードをリセットします。ターミナルで以下のコマンドを実行してください。

mysqld_safe --skip-grant-tables

このコマンドを実行後、新しいターミナルウィンドウを開いて次のステップに進んでください。元のターミナルウィンドウは開いたままにしてください。

3. MySQLにログインする

新しいターミナルウィンドウで、パスワードなしでMySQLにrootユーザーとしてログインします。

mysql -u root

root 部分は適時ご自身の環境に合わせて変更してください。(以下の手順も同様)

4. パスワードをリセットする

MySQLプロンプトが開いたら、新しいパスワードを設定するSQLコマンドを実行します。次のコマンドを使用してください(rootnew_passwordは新しいパスワードに置き換えてください)。

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

5. MySQLを再起動する

すべての変更を行った後、セーフモードを終了し、MySQLサーバーを通常モードで再起動します。先に開いたターミナルでセーフモードを終了するために、Ctrl + C を押してmysqld_safeを停止し、次に以下のコマンドを実行してMySQLを再起動します。

sudo mysql.server restart

パスワードなしにする場合

MySQLでユーザーのパスワードを完全に削除し、パスワードなしでログインできるようにすることは可能ですが、セキュリティ上の理由から非推奨です。ただし、開発環境など特定の状況でこれが必要な場合、次の手順でパスワードを削除できます。

まずは、MySQLをセーフモードで起動してユーザーとしてログインするところから始めます。

その後、次のSQLコマンドを実行してユーザーのパスワードを削除します。

まずはログインします

mysql -u root -p

この後パスワードを入力してログインしましょう。

パスワードを削除する

削除のコマンドは以下になります。

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '';
FLUSH PRIVILEGES;

MySQLを再起動する

sudo mysql.server restart

これで完了です。

  • この記事を書いた人

awayuki

音大出身。学生時代はフリーランスでWEB制作・開発しながら、2社で長期エンジニアインターンを経験しました(2年半)。 23卒で、自社開発ベンチャー企業に入社しエンジニア・デザイナーとして働き、2024年1月起業しました! このブログでは、ブログ開設方法・プログラミング・音大からエンジニアになれた方法など書いています。 お仕事依頼はお問い合わせフォームからお問い合わせお願いします。 Zenn

-MySQL, Ruby on Rails