MySQL用户是一条记录,其中包含登录信息,帐户特权以及MySQL帐户访问和管理数据库的主机信息。登录信息包括用户名和密码。在某些情况下,需要更改MySQL数据库中的用户密码。
MySQL允许无涯教程以三种不同的方式更改用户帐户密码,如下所示:
该语句是更改用户密码以更新MySQL数据库的用户表的第一种方法。在这里,您必须在执行UPDATE语句后使用 FLUSH PRIVILEGE 语句从MySQL数据库的授权表中重新加载特权。
假设您要更改或更新从本地主机连接的用户 peter 的密码,该密码为 jtp12345 ,请执行SQL语句如下:
mysql> USE mysql; mysql> UPDATE user SET password = PASSWORD('jtp12345') WHERE user = 'peter' AND host = 'localhost'; mysql> FLUSH PRIVILEGES;
如果您使用的是MySQL 5.7.6 或更高版本,则以上语句将不起作用。这是因为MySQL用户表包含 authentication_string 列,该列仅存储密码。现在,较高版本的UPDATE语句中包含authentication_string列,如以下语句所示。
mysql> USE mysql; mysql> UPDATE user SET authentication_string = PASSWORD('jtp12345') WHERE user = 'peter' AND host = 'localhost'; mysql> FLUSH PRIVILEGES;
SET PASSWORD语句是更改MySQL数据库中用户密码的第二种方法。如果要更改其他帐户密码,则必须具有UPDATE权限。 SET PASSWORD语句使用 username@localhost 格式的用户帐户。
无需使用FLUSH PRIVILEGES语句从MySQL数据库的授权表中重新加载特权。无涯教程可以使用以下语句通过使用SET PASSWORD语句来更改用户帐户peter的密码:
mysql> SET PASSWORD FOR 'peter'@'localhost' = PASSWORD('jtp12345');
如果您使用的是MySQL 5.7.6或更高版本,则不建议使用上述语句,并且在以后的版本中将不起作用。相反,需要使用以下语句:
mysql> SET PASSWORD FOR 'peter'@'localhost' = jtp12345;
ALTER USER语句是在MySQL数据库中更改用户密码的第三种方法。 MySQL使用带有IDENTIFIED BY子句的ALTER USER语句来更改用户帐户的密码。无涯教程需要使用以下语法通过 jtp123 更改用户 peter 的密码。
mysql> ALTER USER peter@localhost IDENTIFIED BY 'jtp123';
有时,您需要重置MySQL root 帐户密码。在这种情况下,您可以强制停止并重新启动MySQL数据库服务器,而无需使用授权表验证。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)