MySQLのrootパスワードを忘れることは、特にデータベースを管理するために即座にアクセスが必要な場合、非常にストレスの多い体験です。幸いなことに、サーバーへの管理者アクセスがあれば、rootパスワードをリセットするのは簡単なプロセスです。このガイドでは、LinuxWindowsシステムの両方の手順を説明します。

前提条件

進む前に、次のことを確認してください:

  • システムへの管理者アクセス(rootまたはsudo権限)

  • シェルまたはコマンドラインアクセス(SSHまたはターミナル)

方法1: LinuxでMySQLのrootパスワードをリセットする

ステップ1: MySQLサービスを停止する

sudo systemctl stop mysql

ステップ2: セーフモードでMySQLを起動する

パスワード認証なしでMySQLを起動します:

sudo mysqld_safe --skip-grant-tables &

これにより、パスワードなしでMySQLにアクセスできるようになります。このモードは安全ではなく、一時的にのみ使用するべきです。

ステップ3: MySQLにアクセスする

mysql -u root

ステップ4: rootパスワードを変更する

MySQLシェル内で次のコマンドを実行します:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';

MySQL 5.7またはそれ以前を使用している場合、構文が異なる場合があります:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('YourNewStrongPassword');

ステップ5: 通常通りMySQLを再起動する

sudo systemctl stop mysql
sudo systemctl start mysql

新しいパスワードでログインできるようになったはずです:

mysql -u root -p

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

ステップ1: MySQLサービスを停止する

サービス(services.msc)を開き、MySQLサービスを停止します。

ステップ2: パスワードリセットスクリプトを作成する

次の内容でテキストファイルC:mysql-init.txtを作成します:

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

ステップ3: スクリプトでMySQLを起動する

コマンドプロンプトで次のコマンドを実行します(パスを適宜調整してください):

mysqld --init-file="C:\mysql-init.txt"

起動して変更を適用した後、MySQLを停止し、サービスマネージャーを通じて通常通り再起動します。

リセット後はmysql-init.txtファイルを削除して、セキュリティリスクを避けてください。

安全なパスワード管理のためのヒント

  • MySQLのrootアカウントには、常に強力でユニークなパスワードを使用してください。

  • セキュリティを強化するために、rootユーザーのリモートアクセスを無効にすることを検討してください。

  • パスワードマネージャーを使用して、資格情報を安全に保存してください。

結論

MySQLのrootパスワードをリセットするのは管理可能なプロセスですが、セキュリティリスクを避けるために注意して行うべきです。頻繁にrootアクセスが必要な場合は、リスクを減らし、より良いセキュリティ衛生を維持するために、別の管理者レベルのMySQLユーザーを作成することを検討してください。