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