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


MySQLまたはMariaDBデータベースサーバーを初めてセットアップする場合は、すぐにmysql_secure_installationを実行して、基本的なセキュリティ設定を実装する可能性があります。

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

この記事は重宝します。 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パスワードをリセットする方法について説明しました。いつものように、質問やフィードバックがあれば、下のコメントフォームを使用して私たちにメモを送ってください。返信お待ちしています!