首頁 >資料庫 >mysql教程 >mysql root是什麼

mysql root是什麼

青灯夜游
青灯夜游原創
2021-12-27 18:13:107897瀏覽

root指的是超級管理員;MySQL在安裝時,會預設創建一個名為root的用戶,該用戶擁有超級權限,可以控制整個MySQL伺服器。 root使用者擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他使用者的密碼。

mysql root是什麼

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

在mysql中,root指的是超級管理員,系統會預設一個超級管理員。

MySQL 在安裝時,會預設建立一個名為 root 的用戶,該用戶擁有超級權限,可以控制整個 MySQL 伺服器。

在對MySQL 的日常管理和操作中,為了避免有人惡意使用root 用戶控制資料庫,我們通常會創建一些具有適當權限的用戶,盡可能地不用或少用root 用戶登入系統,以此來確保資料的安全存取。

一般root超級管理員的權限會比一般使用者的權限大很多,所以有些操作要root權限才能運作。

root 使用者擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他使用者的密碼。

MySQL修改root密碼

在 MySQL 中,root 使用者擁有很高的權限,因此必須保證 root 使用者密碼的安全性。

修改MySQL資料庫的user表

因為所有帳號資訊都保存在 user 表中,因此可以直接透過修改 user 表來改變 root 使用者的密碼。

root 使用者登入 MySQL 伺服器後,可以使用 UPDATE 語句修改 MySQL 資料庫的 user 表的 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");

範例

下面使用 SET 語句將 root 使用者的密碼修改為「rootpwd3」。

使用root 使用者登入MySQL 伺服器後,SQL 語句和執行結果如下所示:

MySQL> SET PASSWORD = password ("rootpwd3");
Query OK, 0 rows affected (0.00 sec)

結果顯示,SET 語句執行成功,root 使用者的密碼會成功設定為“rootpwd3” 。

MySQL root修改一般使用者密碼

使用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 語句和運行結果如下:

mysql> CREATE USER 'testuser'@'localhost';
Query OK, 0 rows affected (0.14 sec)

root 用戶登入MySQL 伺服器後,再使用SET 語句將testuser 使用者的密碼修改為“newpwd”,SQL 語句和運行結果如下:

mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)

由運行結果可以看出,SET 語句執行成功,testuser 使用者的密碼成功設定為“newpwd 」。

下面驗證 testuser 使用者密碼是否修改成功。退出 MySQL 伺服器,使用 testuser 使用者登錄,輸入密碼“newpwd”,SQL 語句和運行結果如下:

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.

由執行結果可以看出,testuser 使用者登入成功,修改密碼成功。

範例2

使用testuser 使用者登入MySQL 伺服器,再使用SET 語句將密碼變更為“newpwd1”,SQL 語句和執行結果如下所示:

mysql> SET PASSWORD = PASSWORD('newpwd1');
Query OK, 0 rows affected, 1 warning (0.00 sec)

由運行結果可以看出,修改密碼成功。

使用UPDATE語句修改普通使用者的密碼

使用root 使用者登入MySQL 伺服器後,可以使用UPDATE 語句修改MySQL 資料庫的user 表的authentication_string 字段,從而修改普通用戶的密碼。 UPDATA 語句的語法如下:

UPDATE MySQL.user SET authentication_string = PASSWORD("newpwd") WHERE User = "username" AND Host = "hostname";

其中,username 參數是一般使用者的使用者名,hostname 參數是一般使用者的主機名,newpwd 是要變更的新密碼。

注意,執行 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 root是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn