ウェブサイト検索

Linux で MySQL または MariaDB のルートパスワードをリセットする方法


MySQL または MariaDB データベース サーバーを初めてセットアップする場合は、その後すぐに mysql_secure_installation を実行して、基本的なセキュリティ設定を実装することになるでしょう。

これらの設定の 1 つはデータベース ルート アカウントのパスワードです。これは非公開にし、厳密に必要な場合にのみ使用する必要があります。パスワードを忘れた場合、またはパスワードをリセットする必要がある場合(たとえば、データベース管理者の役割が変更された場合、または解雇された場合など)。

推奨事項: MySQL または MariaDB のルート パスワードを変更する

この記事が役に立ちます。 Linux で忘れた MySQL または MariaDB の root パスワードをリセットまたは回復する方法を説明します。

この記事では MariaDB サーバーを使用しますが、この手順は MySQL でも同様に機能するはずです。

MySQL または MariaDB の root パスワードを回復する

まず、データベース サービスを停止し、サービスのステータスを確認します。前に設定した環境変数が表示されます。


------------- SystemD ------------- 
systemctl stop mariadb

------------- SysVinit -------------
/etc/init.d/mysqld stop

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


------------- SystemD ------------- 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mariadb
systemctl status mariadb

------------- SysVinit -------------
mysqld_safe --skip-grant-tables &

これにより、パスワードなしで root としてデータベース サーバーに接続できるようになります (接続するには、別の端末に切り替える必要がある場合があります)。


mysql -u root

それ以降は、以下に説明する手順に従ってください。


MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

最後に、サービスを停止し、環境変数の設定を解除して、サービスを再度開始します。


------------- SystemD ------------- 
systemctl stop mariadb
systemctl unset-environment MYSQLD_OPTS
systemctl start mariadb

------------- SysVinit -------------
/etc/init.d/mysql stop
/etc/init.d/mysql start

これにより、以前の変更が有効になり、新しいパスワードを使用してデータベース サーバーに接続できるようになります。

まとめ

この記事では、MariaDB/MySQL の root パスワードをリセットする方法について説明しました。いつものように、ご質問やフィードバックがございましたら、お気軽に以下のコメント フォームをご利用ください。お返事おまちしております!