ホームページ  >  記事  >  データベース  >  mysqlのパスワードを忘れた場合に修正する方法

mysqlのパスワードを忘れた場合に修正する方法

WBOY
WBOY転載
2023-06-02 15:22:212629ブラウズ

まず、MySQL パスワードがどのように保存されるかを理解する必要があります。 MySQL は、SHA1() 暗号化関数と Salt と呼ばれるランダム文字列を使用して、パスワードを暗号化されたハッシュ文字列として保存します。 MySQL パスワードの暗号化プロセスは元に戻すことができないため、復元できるようにするにはいくつかの特別な措置を実装する必要があります。

方法 1: root ユーザーを使用してパスワードを変更する

root 権限がある場合は、次の手順を使用してパスワードを変更できます:

1. ログインします。 root として MySQL サーバーに接続します

mysql -u root -p

2. root ユーザーのパスワードを入力します

#3. MySQL コマンド ラインを入力します

4. mysql を入力します コマンド ラインを入力した後、次のコマンドを使用して root ユーザーのパスワードを変更します:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD ('new_password');

「new_password」を設定する新しいパスワードに置き換え、MySQL コマンド ラインの最後に必ずセミコロンを追加してください。

5. MySQL を終了し、新しいパスワードで再度ログインします

MySQL を使用する場合、root ユーザーが最高の権限を持っているため、root ユーザーのパスワードがわかっていれば、MySQL パスワードの変更が非常に簡単になります。

方法 2: MySQL パスワードをリセットする

root ユーザーからパスワードを変更できない場合、または root パスワードがまったくわからない場合は、MySQL パスワードをリセットすることが最善の選択となる可能性があります。 MySQL パスワードをリセットするために一般的に使用される 2 つの方法は次のとおりです。

方法 1: Skip-grant-tables を使用して MySQL パスワードをリセットする

この方法では、MySQL ユーザー認証プロセスがスキップされ、次のことが可能になります。パスワードを入力せずに MySQL にログインします。具体的な手順は次のとおりです:

1. MySQL サービスを停止します

sudo systemctl stop mysql

2. 次のコマンドを実行して MySQL をスキップしますユーザー認証プロセス:

#sudo mysqld_safe --skip-grant-tables &

3. root

## として MySQL サーバーにログインします。 #mysql -u root

4. MySQL コマンド ラインを入力した後、次のコマンドを使用してパスワードを変更します:

mysql> UPDATE mysql.user SET Password= PASSWORD('new_password') WHERE User='root';

「new_password」を設定する新しいパスワードに置き換えて、MySQL コマンドの最後にセミコロンを必ず追加してください。 line;

5. mysql.user テーブルを更新します

mysql> FLUSH PRIVILEGES;

6. MySQL を終了して MySQL を再起動します

sudo systemctl start mysql

7. 新しいパスワードを使用して MySQL に再度ログインします

方法 2: リセット スクリプトを使用して MySQL パスワードをリセットします

この方法では、 root としてスクリプトを実行する必要があり、MySQL データ ファイルの場所を知っている必要があります。具体的な手順は次のとおりです:

1. MySQL サービスを停止します

sudo systemctl stop mysql

2. MySQL データ ファイルを検索します

デフォルトでは、MySQL はデータ ファイルを /var/lib/mysql ディレクトリに保存します。データ ファイルの正確な場所は、次のコマンドを実行することで確認できます:

sudo find / -name "*.frm"

3. リセット スクリプトを作成します。

次のコマンドを使用して、次のコードをresetmysql.shファイルに保存してください:

#!/bin/bash
/usr/sbin/mysqld --skip-grant-tables --skip-networking  &
sleep 5s

mysql -u root <<EOF
UPDATE mysql.user SET Password=PASSWORD(&#39;new_password&#39;) WHERE User=&#39;root&#39;;
FLUSH PRIVILEGES;
EOF

killall mysqld
sleep 5s
/usr/sbin/mysqld --skip-networking &

「new_password」を設定する新しいパスワードに置き換えてください。

4. スクリプトを実行して MySQL パスワードをリセットする

次のコマンドを使用して、root 権限でリセット スクリプトを実行します:

sudo bash replacemysql.sh

5. MySQL を開始します

#sudo systemctl start mysql

#6. 新しいパスワードで MySQL に再度ログインします

この時点で、読者は MySQL パスワードを忘れた問題を解決する次の 2 つの方法を知っておく必要があります。root ユーザーを使用してパスワードを変更する方法と、MySQL パスワード リセット スクリプトを使用してパスワードをリセットする方法です。

以上がmysqlのパスワードを忘れた場合に修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。