フルスタックエンジニアのノウハウ
2021.07.24    2022.06.11

MySQLでrootパスワードを忘れた場合の対処方法

この記事の動画版はこちら(画像クリックでYoutubeに飛びます)

チャンネル登録お願いします!


今回は、MySQLでrootパスワードを忘れた場合の対処方法をご紹介します。


過去に設定したパスワードを忘れてしまい、MySQLにログインが出来なくなってしまった。

このような場合は、今回ご紹介する手順を試してみてくださいね。


なお、動画解説では実際の画面を見ながら説明していますので、ご参考にしてみてください。



ターミナルを起動


まずは、操作を行うためのターミナルを起動します。


※今回はXAMPP(Windows)に導入したMySQLを例に説明していきます。


XAMPP Control Panelから、「Shell」をクリックするとターミナルが起動します。


このような黒い画面が立ち上がればOKです。


Macの場合は、標準のターミナルアプリ、サーバーをリモート操作している場合は、SSHなどのシェルウィンドウでOKです。



まずはパスワード無しで入れないか確認


XAMPPで導入した場合などは、初期状態でMySQLのパスワードが設定されていないこともあるため、まずはパスワード無しでログイン出来ないかを念のため確認してみましょう。


MySQLが起動していることを確認し、以下のコマンドを入力してEnterを押します。

mysql -u root


MySQL(またはMariaDB)のプロンプトが表示されたら、正常にMySQLにログインが出来ています。つまり、パスワードは未設定だったということですね。


この場合、アプリからデータベースに接続する際は、パスワードを空欄にすればOKです。

新たにパスワードを設定する場合は、記事後半の「MySQLのパスワード変更」に飛んでください。


先ほどのコマンドを実行後、このように表示された場合は、ログインに失敗しています。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


何らかのパスワードが登録されているということですね。



パスワード無しで接続出来るモードに変更


MySQLのパスワードを再設定するために、まずは、パスワード無しでもログイン出来るモードに変更します。


これは当然、誰でも行える作業ではありませんがMySQLの設定ファイルを編集出来たり、MySQL再起動が行える権限があれば可能です。


XAMPP Control Panelの、MySQLのConfigボタンをクリックして「my.ini」をクリックします。


Windows以外の環境を使っている場合は「my.cnf」という名前になっています。


すると、設定ファイルが開かれますので、[mysqld]の下に以下のように入力し保存します。

skip-grant-tables



設定ファイルを書き換えたら、XAMPP Control PanelでMySQLを再起動します。

Stopを押して停止してから、Startを押して起動する形ですね。


MySQLが緑色に表示されていればOKです。


MySQLのパスワード変更


これで、MySQLにパスワード無しでログイン出来る状態になったのでターミナルから以下のコマンドを実行して、MySQLにログインします。

mysql -u root


今度はパスワードを聞かれずにログインが出来ると思います。

この状態で、新しいパスワードを設定していきます。


まずは、以下の2つのコマンドを入力して、ユーザーのパスワード情報などが保存されている「mysql」というデータベースを使うという指定を行います。

use mysql
flush privileges;


続いて、こちらのコマンドを入力します。

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


末尾のシングルクォーテーションで括られた部分は、設定したいパスワードに置き換えてください(この例だと「new_password」というのが新しいパスワードとして設定されます)


入力出来たらEnterを押します。

これで、パスワードの変更作業はOKです。



新しいパスワードでログインを試す


MySQLを一度停止し、設定ファイルに先ほど追加した「skip-grant-tables」を削除して、MySQLを再起動し、通常モードに戻します。


以下のコマンドでログインを行います。

mysql -u root -p


パスワードを聞いてくるので、先ほど設定した新しいパスワードを入力してEnterを押します。


入力したパスワードは、セキュリティ上、画面に表示されませんが、入力はされていますので、入力し終わったらEnterを押しましょう。


正常にログインが出来ればOKです。


これで、MySQLのパスワード変更は完了です。

以降はこのパスワードを使ってログインすることが出来ます。


ということで、今回は「MySQLでrootパスワードを忘れた場合の対処方法」をご紹介しました。


おすすめ記事