ウェブサイト検索

3 つの簡単なステップで MySQL ルート パスワードをリセット


MySQL サーバーの root パスワードを忘れましたか?心配ない。素早く簡単にリセットする方法は次のとおりです。

MySQL データベースのパスワードを忘れた場合でも、心配する必要はありません。 root パスワードのリセットは、3 つの簡単な手順で完了できる簡単なプロセスです。そこで、初心者でも経験豊富な MySQL ユーザーでも、データベース サーバーの制御を取り戻す方法を説明します。

このガイドでは、MySQL root ユーザーのパスワードをリセットするための 2 つの異なるテクニックを説明します。 2 つのどちらを選択しても、望ましい結果が得られます。

さらに、この手順は、一般的な MySQL の代替品である MariaDB データベースに完全に適用され、場合によっては、MySQL では利用できない追加機能が提供されます。この件に関する詳細なガイドは、こちらでご覧いただけます。

MySQL root パスワードをリセットする: 最速の方法

以下の手順を完了するには、MySQL が実行されるサーバー上に、特権コマンドを実行するための sudo 権限を持つローカル ユーザー アカウントが必要です。

ステップ 1: パスワードを使用せずに MySQL サーバーを停止および起動する

MySQL サービスを停止します。

sudo systemctl stop mysqld

次に、以下に示すように、一時的な MySQL サーバー インスタンスを実行します。

sudo -u mysql mysqld --skip-grant-tables &

説明しましょう。サーバーが --skip-grant-tables オプションを使用して起動された場合、サーバーは許可テーブルを読み取ったり、アクセス制御を適用したりしません。つまり、ユーザーはパスワードなしでアクセスできます。

これで、パスワードを必要とせずに、root ユーザーとして MySQL サーバーにログインできるようになります。

mysql -u root

ステップ 2: MySQL root パスワードをリセットする

まず現在の権限をリロードします。

FLUSH PRIVILEGES;

次に、次のクエリを使用して MySQL の root パスワードをリセットします。もちろん、最初に「MyNewPassword」を必要なパスワードに置き換えます。

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

最後に、権限をもう一度リロードして終了します。

FLUSH PRIVILEGES;
quit

MySQL へのユーザーの追加と権限の付与について詳しく知りたい場合は、こちらのガイドを参照してください。

ステップ 3: MySQL サーバーを再起動して接続する

パスワードを変更したので、プロセス番号を見つけて終了することにより、実行中の MySQL サーバーを一時的に停止する必要があります。次のコマンドを使用すると、これを簡単に実行できます。

ps auxw | grep '\-\-skip-grant-tables' | tail -n 1 | awk '{ print $2 }' | sudo xargs kill

次に、MySQL サーバーを再起動し、新しいパスワードでログインします。

sudo systemctl start mysqld
mysql -u root -p

おめでとう!これで、MySQL サーバーが制御下に戻りました。

初期化ファイルによる MySQL の root パスワードのリセット

以下の手順を完了するには、MySQL が実行されるサーバー上に、特権コマンドを実行するための sudo 権限を持つローカル ユーザー アカウントが必要です。

ステップ 1: mysql システム ユーザーに切り替え、MySQL サーバーを停止する

以下の手順を正常に完了するには、MySQL サーバーを実行するシステム ユーザー アカウントに切り替える必要があります。これは通常、ユーザー名 mysql を持つシステム アカウントです。これに切り替えるには、次のコマンドを実行します。

sudo -u mysql /bin/bash

whoami コマンドを使用すると、正しいユーザーで作業していることを確認できます。

次に、kill コマンドに、開始時のプロセス番号を保持する PID ファイルへのフルパスを渡して、MySQL サーバーを停止します。このファイルの場所がわからない場合は、次のコマンドを実行するとすぐに見つけることができます。

mysqld --print-defaults | tr " " "\n" | grep pid | tail -n 1

最後に、MySQL サーバーを停止します。

kill `cat /run/mysqld/mysqld.pid`

ステップ 2: MySQL パスワード リセット ファイルを作成する

/tmp ディレクトリで任意のテキスト エディタを使用して、パスワード割り当てクエリを 1 行含む「mysql-init.txt」という名前のテキスト ファイルを作成します。

vim /tmp/<em>mysql-init.txt</em>

次の行を挿入し、パスワードを使用するものに必ず変更してください。

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

ファイルを保存して終了します。 

ステップ 3: MySQL サーバーを起動する

以下に示すように、--init-file オプションを作成したばかりのファイルへのフルパスに設定して、MySQL サーバーを起動します。

mysqld --init-file=/tmp/mysql-init.txt &

それだけです。 MySQL root ユーザーのパスワードが変更され、上記のファイルで指定したパスワードを使用して root としてログインできるようになりました。

mysql -u root -p

これで、「/tmp/mysql-init.txt」ファイルを安全に削除できます。もう必要ありません。

結論

ご覧のとおり、MySQL の root パスワードのリセットは 3 つのステップで完了できる比較的単純なプロセスです。ただし、root パスワードのリセットはデータベースをセキュリティ リスクにさらす可能性があるため、最後の手段としてのみ実行する必要があることに注意してください。

したがって、パスワードを慎重に管理し、将来リセットされないように安全に保管することを常にお勧めします。追加情報は公式ドキュメントで見つけることができます。

ご質問やご意見がございましたら、お気軽にコメントください。

関連記事: