ホームページ  >  記事  >  データベース  >  mysqlがrootパスワードを忘れてしまいました

mysqlがrootパスワードを忘れてしまいました

WBOY
WBOYオリジナル
2023-05-12 10:59:06570ブラウズ

MySQL は、Web アプリケーションの構築やデータの管理によく使用される、一般的に使用されるリレーショナル データベース管理システムです。 MySQL では、root ユーザーは最高の権限を持つユーザーであり、通常はデータベース全体の管理に使用されます。ただし、場合によっては、root ユーザーのパスワードを忘れてしまうことがあります。この記事では、MySQL root ユーザーのパスワードをリセットする一般的な方法をいくつか紹介します。

  1. mysqld_safe を使用して MySQL を開始する

root ユーザーのパスワードを忘れた場合、最初に試すべき方法は、mysqld_safe を使用して MySQL サービスを開始することです。この方法では、パスワードを必要とせずに MySQL を起動し、root ユーザーのパスワードを変更できるようになります。手順は次のとおりです。

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

$ sudo systemctl stop mysql

次に、mysqld_safe を使用して MySQL サービスを開始し、--skip-grant-tables を指定します。

$ sudo mysqld_safe --skip-grant-tables &

--skip-grant-tables パラメータにより、MySQL はアクセス制御リストを無視します。つまり、誰でも MySQL サーバーに接続でき、 root権限を持っています。このため、信頼できるユーザーのみがサーバーにアクセスできるようにする必要があります。

次に、別のターミナル ウィンドウで MySQL サーバーに接続します。

$ mysql -u root

MySQL プロンプトで次のコマンドを実行して、root ユーザーのパスワードを変更します。

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

このコマンドでは、new_password を新しいパスワードに置き換えます。

最後に、MySQL を終了し、MySQL サービスを再起動します。

mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl start mysql

これで、新しいパスワードを使用して root ユーザーとしてログインできるようになりました。

  1. mysql_secure_installation スクリプトを使用する

mysqld_safe を使用して MySQL を起動できない場合は、mysql_secure_installation スクリプトを使用して root ユーザーのパスワードをリセットすることもできます。このスクリプトは、root ユーザーのパスワードのリセット、匿名ユーザーの削除、リモート ログインの無効化など、MySQL のいくつかの設定を迅速に行うことができます。

まず、次のコマンドを実行して、mysql_secure_installation スクリプトをインストールします。

$ sudo apt-get update
$ sudo apt-get install mysql-server

インストールが完了したら、次のコマンドを使用して mysql_secure_installation スクリプトを実行できます。

$ sudo mysql_secure_installation

実行プロセス中に、root ユーザーのパスワードの設定、匿名ユーザーの削除など、いくつかの質問に答える必要があります。パスワードを設定する場合、root ユーザーの元のパスワードを忘れた場合でも、空白のままにして新しいパスワードの設定を選択できます。すべての設定が完了すると、新しいパスワードを使用して root としてログインできるようになります。

  1. skip-grant-tables パラメータを使用して MySQL を開始する

上記 2 つの方法を使用できない場合、最後の試みは、skip-grant-tables パラメータを使用して MySQL を開始することです。 MySQLを起動します。この方法では MySQL を起動できますが、データベースが脆弱な状態のままになるため、運用環境では使用しないでください。

まず、MySQL 構成ファイル my.cnf または my.ini を見つけます。ファイルには次の行が含まれている必要があります:

[mysqld]
skip-grant-tables

ファイルが存在しない場合は、新しいファイルを作成して上記の 2 行を追加できます。ファイルにコピーし、my.cnf または my.ini として保存します。

次に、次のコマンドを使用して MySQL を再起動します。

$ sudo systemctl restart mysql

再起動後は、パスワードを入力せずに root ユーザーとして MySQL にログインできるようになります。 MySQL プロンプトで次のコマンドを入力して、root ユーザーのパスワードを変更します。

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

new_password を新しいパスワードに置き換えて、MySQL を終了し、MySQL サービスを再起動します。

mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl restart mysql

これで、新しいパスワードを使用して root ユーザーとしてログインできるようになりました。

概要

MySQL root ユーザーのパスワードを忘れることはよくある問題ですが、解決する方法はたくさんあります。ほとんどの場合、パスワードのリセットは、mysqld_safe または mysql_secure_installation スクリプトを使用することで簡単に行えます。これらの方法が機能しない場合、skip-grant-tables パラメータを指定して MySQL を起動するのは最後の手段かもしれませんが、運用環境ではお勧めできません。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。