ITEEDU

13.5.1.5. SET PASSWORD语法

SET PASSWORD = PASSWORD('some password')
SET PASSWORD FOR user = PASSWORD('some password')

SET PASSWORD语句用于向一个原有MySQL用户 账户赋予一个密码。

第一个语法为当前用户设置密码。已使用一个非匿名账户连接到服务器上的任何客户即都可以更改该账户的密码。

第二个语法为当前服务器主机上的一个特定账户设置密码。只有拥有mysql数据库UPDATE权限的客户端可以这么做。user值应以user_name@host_name的格式被给定,此处user_namehost_name与mysql.user表登录项的User和Host列中列出的完全一样。举例说明,如果您有一个登录项,User和Host列值为'bob'和'%.loc.gov',您应该按如下方法写语句:

mysql> SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

这相当于以下语句:

mysql> UPDATE mysql.user SET Password=PASSWORD('newpass')
    -> WHERE User='bob' AND Host='%.loc.gov';
mysql> FLUSH PRIVILEGES;

注释:如果您正在使用一个4.1以前的客户端连接到一个MySQL 4.1或MySQL 4.1以后的服务器,则在阅读5.7.9节,“MySQL 4.1中的密码哈希处理”之前,不能使用前面的SET PASSWORD或UPDATE语句。 密码格式在MySQL 4.1中变更了,并且在特定情况下,如果您更改密码,您可能无法在连接到服务器上。

您可以通过执行SELECT CURRENT_USER()观看您当前的鉴定user@host登录项。