Mysql 简明教程
MySQL - Change Password
MySQL 为每个用户提供一个帐户,该帐户使用用户名和密码进行身份验证。MySQL 中的默认帐户是 root,没有密码(然而,可以使用语句为 root 设置密码)。类似地,其他用户定义的帐户可以使用 SQL 语句显式设置密码,或者可以使用 MySQL 系统自动生成密码。
MySQL Change User Password
与任何其他经过身份验证的帐户一样,MySQL 有一项规定,可以更改用户密码。但必须确保当前没有应用程序正在被用户使用。如果在不断开应用程序的情况下重置了密码,应用程序将无法再通过此用户连接到服务器。
我们可以使用以下三个 SQL 语句更改 MySQL 用户帐户的密码:
-
UPDATE statement
-
SET PASSWORD statement
-
ALTER USER statement
The UPDATE Statement
在 MySQL 中更改用户密码的最基本方法是使用 UPDATE 语句。此语句用于更新帐户详细信息,包括“root”帐户的帐户密码。但是,一旦使用此语句完成修改,就必须使用 FLUSH PRIVILEGES 语句从 MySQL 数据库的授权表重新加载权限。
Syntax
以下是使用 UPDATE 语句更改密码的语法:
UPDATE mysql.user
SET authentication_string = PASSWORD(password_string)
WHERE User = user_name AND
Host = host_name
FLUSH PRIVILEGES;
Example
以下示例演示如何使用 UPDATE 语句更改用户帐户的密码。首先,我们创建一个用户帐户“sample”,密码为 '123456':
CREATE USER 'sample'@'localhost' IDENTIFIED BY '123456';
以下是所获得的输出 −
Query OK, 0 rows affected (0.02 sec)
现在,可以使用以下查询验证用户列表:
SELECT User FROM mysql.user;
表将显示如下 -
如果你有 MySQL 版本 5.7.6 及更高版本,则可以使用以下查询直接修改 mysql.user 表:
UPDATE user
SET authentication_string = PASSWORD('xxxxxx')
WHERE User = 'sample' AND Host = 'localhost';
执行上面的代码后,我们得到以下输出: -
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
对用户帐户进行更改后,你需要使用 FLUSH PRIVILEGES 语句立即应用这些更改:
FLUSH PRIVILEGES;
获得的输出如下所示 −
Query OK, 0 rows affected (0.01 sec)
The SET PASSWORD statement
SET PASSWORD 语句用于为 MySQL 帐户设置密码。它包含一个“密码验证”子句,该子句让系统知道需要用另一个密码替换当前用户密码。