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パスワードを忘れた場合の対処方法」をご紹介しました。