GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuLinuxのMySQL8でrootパスワードをリセットする方法

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データベースのルートパスワードを数分で回復できます。二度と失くさないでください。パスワードを覚えておくか、安全な場所に保存してください。


Ubuntu
  1. ルートMySqlパスワードをリセットする方法

  2. ルートMySqlパスワードをリセットする方法

  3. Ubuntuのパスワードをリセットする方法は?

  1. LinuxまたはWindowsでMySQLルートパスワードをリセットまたは変更する方法

  2. ルートパスワードをリセットする方法MySQLサーバー

  3. MySQLルートパスワードをリセットする方法

  1. Ubuntu 20.04 FocalFossaLinuxでrootMySQL/MariaDBパスワードをリセットする方法

  2. UbuntuLinuxでルートパスワードを変更する方法

  3. Ubuntuで管理者/ルートパスワードをリセットする方法