Root はスーパー管理者を指します。MySQL がインストールされると、デフォルトで root という名前のユーザーが作成されます。このユーザーはスーパー権限を持ち、MySQL サーバー全体を制御できます。 root ユーザーは非常に高い権限を持っており、自分のパスワードを変更できるだけでなく、他のユーザーのパスワードも変更できます。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、root はスーパー管理者を指し、システムはデフォルトでスーパー管理者になります。
MySQL がインストールされると、root という名前のユーザーがデフォルトで作成されます。このユーザーはスーパー権限を持ち、MySQL サーバー全体を制御できます。
MySQL の日常的な管理と運用では、誰かがデータベースを制御するために root ユーザーを悪意を持って使用することを防ぐために、通常、適切な権限を持つユーザーを作成し、root ユーザーの使用を最小限または最小限に抑えます。データへの安全なアクセスを確保するために、システムにログインすることが可能です。
一般に、root スーパー管理者は通常のユーザーよりもはるかに大きな権限を持っているため、一部の操作の実行には root 権限が必要です。
root ユーザーは非常に高い権限を持っており、自分のパスワードを変更できるだけでなく、他のユーザーのパスワードも変更できます。
MySQL では、root ユーザーは非常に高い権限を持っているため、root ユーザーのパスワードのセキュリティを確保する必要があります。
MySQL データベースのユーザー テーブルを変更する
すべてのアカウント情報はユーザー テーブルに保存されるため、ユーザー テーブルを変更することで root ユーザーのパスワードを直接変更できます。 。
root ユーザーが MySQL サーバーにログインした後、UPDATE ステートメントを使用して MySQL データベースのユーザー テーブルの authentication_string フィールドを変更し、ユーザーのパスワードを変更できます。
UPDATA ステートメントを使用して root ユーザーのパスワードを変更するための構文形式は次のとおりです。
UPDATE mysql.user set authentication_string = PASSWORD ("rootpwd) WHERE User = "root" and Host="localhost";
新しいパスワードは PASSWORD() 関数を使用して暗号化する必要があります。 UPDATE ステートメントを実行した後、FLUSH PRIVILEGES ステートメントを実行してユーザー権限を再ロードする必要があります。
例
次の例では、UPDATE ステートメントを使用して、root ユーザーのパスワードを「rootpwd2」に変更します。
root ユーザーとして MySQL サーバーにログインした後の SQL ステートメントと実行結果は次のとおりです。
mysql> UPDATE mysql.user set authentication_string = password ("rootpwd2") -> WHERE User = "root" and Host = "localhost"; Query OK, 1 row affected, 0 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings:0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.06 sec)
結果は、パスワードが正常に変更されたことを示しています。また、FLUSH PRIVILEGES; ステートメントは、権限をロードするために使用されます。ログアウトした後、新しいパスワードでログインする必要があります。
SET ステートメントを使用して root ユーザーのパスワードを変更する
SET PASSWORD ステートメントを使用して、他のユーザーのログイン パスワードまたはユーザーのパスワードをリセットできます。あなたが使用するアカウント。 SET ステートメントを使用してパスワードを変更する構文構造は次のとおりです。
SET PASSWORD = PASSWORD ("rootpwd");
Example
以下では、SET ステートメントを使用して、root ユーザーのパスワードを「rootpwd3」に変更します。
root ユーザーとして MySQL サーバーにログインした後の SQL ステートメントと実行結果は次のとおりです:
MySQL> SET PASSWORD = password ("rootpwd3"); Query OK, 0 rows affected (0.00 sec)
結果には、SET ステートメントが正常に実行されたことと、root ユーザーのパスワードが表示されます。正常に「rootpwd3」に設定されました。
SET ステートメントを使用して一般ユーザーのパスワードを変更します
MySQL では、root ユーザーのみが使用できますMySQL データベースを更新してパスワードを変更できます。 root ユーザーとして MySQL サーバーにログインした後、SET ステートメントを使用して通常のユーザーのパスワードを変更できます。構文形式は次のとおりです。
SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');
このうち、username パラメータは一般ユーザのユーザ名、hostname パラメータは一般ユーザのホスト名、newpwd は変更する新しいパスワードです。 。
注: 新しいパスワードは、PASSWORD() 関数を使用して暗号化する必要があります。PASSWORD() を使用して暗号化されていない場合、パスワードは正常に実行されますが、ユーザーはログインできません。
一般ユーザーがパスワードを変更する場合は、FOR 句を省略して自分のパスワードを変更できます。構文形式は次のとおりです:
SET PASSWORD = PASSWORD('newpwd');
例 1
まず、パスワードなしで testuser ユーザーを作成します。SQL ステートメントと実行結果は次のとおりです。 root ユーザーが MySQL サーバーにログインし、SET ステートメントを使用して testuser ユーザーのパスワードを「newpwd」に変更します。SQL ステートメントと実行結果は次のとおりです。実行の結果、SET ステートメントが正常に実行され、testuser ユーザーのパスワードが "newpwd" " に正常に設定されました。
次の例では、testuser ユーザーのパスワードが正常に変更されたかどうかを確認します。 MySQL サーバーを終了し、testuser ユーザーとしてログインし、パスワード「newpwd」を入力します。SQL ステートメントと実行結果は次のとおりです:
mysql> CREATE USER 'testuser'@'localhost'; Query OK, 0 rows affected (0.14 sec)
実行結果から、testuser ユーザーがログに記録したことがわかります。正常に入力され、パスワードが正常に変更されました。
例 2
testuser ユーザーを使用して MySQL サーバーにログインし、SET ステートメントを使用してパスワードを「newpwd1」に変更します。SQL ステートメントと実行結果は次のとおりです。 :
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd"); Query OK, 0 rows affected, 1 warning (0.01 sec)
By 実行結果を見ると、パスワードが正常に変更されたことがわかります。
UPDATE ステートメントを使用して一般ユーザーのパスワードを変更するMySQL サーバーに root ユーザーとしてログインした後、UPDATE ステートメントを使用して変更できます。 MySQLデータベースのuserテーブルのauthentication_stringフィールドを変更して、通常のユーザーのパスワードを変更します。 UPDATA ステートメントの構文は次のとおりです。
C:\Users\leovo>mysql -utestuser -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.7.29-log MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. 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.
UPDATE ステートメントを実行した後、FLUSH PRIVILEGES ステートメントを実行してユーザー権限を再ロードする必要があることに注意してください。
例 3
使用 root 用户登录 MySQL 服务器,再使用 UPDATE 语句将 testuser 用户的密码修改为“newpwd2”的 SQL 语句和运行结果如下:
mysql> UPDATE MySQL.user SET authentication_string = PASSWORD ("newpwd2") -> WHERE User = "testuser" AND Host = "localhost"; Query OK, 1 row affected, 1 warning (0.07 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.03 sec)
由运行结果可以看出,密码修改成功。testuser 的密码被修改成了 newpwd2。使用 FLUSH PRIVILEGES 重新加载权限后,就可以使用新的密码登录 testuser 用户了。
使用 GRANT 语句修改普通用户密码
除了前面介绍的方法,还可以在全局级别使用 GRANT USAGE 语句指定某个账户的密码而不影响账户当前的权限。需要注意的是,使用 GRANT 语句修改密码,必须拥有 GRANT 权限。一般情况下最好使用该方法来指定或修改密码。语法格式如下:
GRANT USAGE ON *.* TO 'user'@’hostname’ IDENTIFIED BY 'newpwd';
其中,username 参数是普通用户的用户名,hostname 参数是普通用户的主机名,newpwd 是要更改的新密码。
示例 4
使用 root 用户登录 MySQL 服务器,再使用 GRANT 语句将 testuser 用户的密码修改为“newpwd3”,SQL 语句和运行结果如下:
mysql> GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'newpwd3'; Query OK, 0 rows affected, 1 warning (0.05 sec)
由运行结果可以看出,密码修改成功。
【相关推荐:mysql视频教程】
以上がmysqlルートとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。