MySQLデータベースのroot
を忘れましたか ユーザーのパスワード?心配ない!このステップバイステップガイドでは、Ubuntu20.04オペレーティングシステム上のMySQL8でrootパスワードをリセットする方法について説明します。
注: ご存知かもしれませんが、MySQLのrootユーザーはauth_socket
を使用します MySQL5.7以降のバージョンを実行しているUbuntuシステムでMySQLサーバーで認証するためのプラグイン。したがって、root
としてMySQLサーバーにログインできます。 sudo mysql
を持つユーザー システムユーザーのsudo
を知っている限りコマンド パスワード。その場合、MySQLのroot
を変更する必要はありません。 パスワード。 MySQLルートの認証方法をすでに変更している場合 ユーザーからcaching_sha2_password
へ またはmysql_native_password
、以下の手順に従って、root
をリセットします MySQLデータベースのパスワード。
UbuntuLinux上のMySQL8でrootパスワードをリセット
1.まず、コマンドを使用してMySQLサービスを停止します:
$ sudo systemctl stop mysql
これにより、MySQLサービスが実行されている場合は停止します。次のコマンドを使用して、MySQLサービスのステータスを確認できます。
$ sudo systemctl status mysql
出力例:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS) Main PID: 1446 (code=exited, status=0/SUCCESS) Status: "Server shutdown complete" May 31 07:57:50 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 07:57:51 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server. May 31 11:01:14 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server… May 31 11:01:15 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded. May 31 11:01:15 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.
2.次に、権限チェックなしでMySQLサーバーを起動します。これを行うには、次を実行します:
$ sudo systemctl edit mysql
これにより、mysql
が開きます systemd
構成ファイルはデフォルトのテキストエディタです。私の場合はnano
編集者。
その中に次の行を追加します:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
上記の行を追加したら、CTRL+O
を押します。 およびENTER
ファイルを保存してからCTRL+X
を押します 閉じます。
ここで、--skip-grant-tables
オプションを使用すると、パスワードなしですべての権限を使用してMySQLデータベースサーバーに接続できます。また、ALTER USER
などのアカウント管理ステートメントも無効になります およびSET PASSWORD
。そして、--skip-networking
オプションは、他のクライアントがデータベースサーバーに接続できないようにするために使用されます。すべてのリモート接続が無効になるため、データベースサーバーを通常どおり再起動するまで、どのリモートクライアントもデータベースサーバーにアクセスできません。
3. systemd
をリロードします コマンドを使用した構成:
$ sudo systemctl daemon-reload
4. MySQLサービスを開始します:
$ sudo systemctl start mysql
これにより、MySQLサーバーが--skip-grant-table
で起動します。 sおよび--skip-networking
オプション。 MySQLサービスのステータスを確認することで確認できます:
$ sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mysql.service.d └─override.conf Active: active (running) since Mon 2021-05-31 11:39:18 UTC; 1min 23s ago Process: 1882 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1905 (mysqld) Status: "Server is operational" Tasks: 36 (limit: 2280) Memory: 331.0M CGroup: /system.slice/mysql.service └─1905 /usr/sbin/mysqld --skip-grant-tables --skip-networking May 31 11:39:16 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 11:39:18 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
5.次に、root
としてMySQLサーバーに接続します パスワードのないユーザー:
$ sudo mysql -u root
すぐにMySQLシェルプロンプト内に移動します。
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
6.許可テーブルをロードせずにデータベースサーバーにログインしました(--skip-grant-tables
を使用したため) オプション)。したがって、ALTER USER
を使用することはできません パスワードをリセットするために必要なコマンド。付与テーブルをロードするには、MySQLシェルプロンプトから次のコマンドを実行します。
mysql> FLUSH PRIVILEGES;
7.次に、次のコマンドのいずれかを実行して、MySQL root
をリセットします。 パスワード。
caching_sha2_password
を使用している場合 プラグイン、実行:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
mysql_native_password
を使用する場合 プラグイン、代わりにこれを実行します:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
Password123#@!
を置き換えます 自分で。
MySQLのroot
を変更した後 パスワード、MySQLシェルプロンプトを終了します:
mysql> exit
8.変更したsystemd
を元に戻します コマンドを使用して構成を通常の設定に戻します:
$ sudo systemctl revert mysql
これにより、変更されたすべてのファイルが削除されます。
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
9. systemd
をリロードします 変更を有効にするための構成:
$ sudo systemctl daemon-reload
10.最後に、MySQLサーバーを通常どおり再起動します。
$ sudo systemctl restart mysql
11.これで、root
としてMySQLデータベースに接続できるようになります。 new password
を持つユーザー コマンドの使用:
$ mysql -u root -p
root
を入力します MySQLシェルプロンプトにアクセスするためのパスワード:
mysql>
MySQLのroot
を変更する別の方法もあります Linuxのパスワード。この方法とは少し異なります。知りたい場合は、次のリンクをご覧ください。
>> How To Reset MySQL Root User Password In Linux
結論
ご覧のとおり、MySQLルートパスワードのリセットは簡単です。上記の手順を注意深く実行すると、MySQLデータベースのルートパスワードを数分で回復できます。二度と失くさないでください。パスワードを覚えておくか、安全な場所に保存してください。