连接到MySQL服务器的客户端所需的凭证可以包括密码。介绍MySQL帐户密码的分配方法。
MySQL将凭据存储在用户
表中mysql
系统数据库。权限的用户才能进行分配或修改密码的操作创建用户
的特权,或者,也可以是mysql
数据库(插入
创建新账户的特权,更新
修改现有帐户的权限)。如果read_only
系统变量已启用,使用帐户修改语句,如创建用户
或改变用户
另外需要CONNECTION_ADMIN
特权(或已弃用的超级
特权)。
这里的讨论只总结了最常见的密码赋值语句的语法。有关其他可能性的详细信息,请参见mysql.user系统表。对于这里描述的语句,MySQL会自动散列指定的密码。也有语法创建用户
而且改变用户
它允许按字面意思指定散列值。详细信息请参见这些语句的描述。
要在创建新帐户时指定密码,请使用创建用户
并包括一个确认的
条款:
创建用户jeffrey @ localhost密码”;
创建用户
还支持指定帐户身份验证插件的语法。看到改变用户
声明一个确认的
条款:
更改用户jeffrey @ localhost的身份密码”;
如果您不是以匿名用户的身份连接,您可以更改自己的密码,而不必按字面意思命名自己的帐户:
修改由'标识的用户user ()密码”;
若要从命令行修改帐户密码,请使用mysqladmin命令:
mysqladmin - uuser_name- hhost_name密码”密码"
该命令设置密码的帐户是在mysql.user
匹配的系统表user_name
在用户
列和客户端主机你从哪里连接在宿主
列。
使用以下命令设置密码mysqladmin应该考虑不安全的.在某些系统上,您的密码对系统状态程序可见,例如ps其他用户可以调用它来显示命令行。MySQL客户端通常在初始化序列中用零覆盖命令行密码参数。然而,仍然有一个短暂的间隔,在此期间值是可见的。此外,在某些系统上,这种覆盖策略是无效的,密码仍然是可见的ps.(SystemV Unix系统和其他系统可能会出现这个问题。)
如果您正在使用MySQL Replication,请注意,当前,一个密码被一个副本用作将复制源更改为
语句(从MySQL 8.0.23)或改变主
语句(在MySQL 8.0.23之前)的长度有效限制为32个字符;如果密码较长,多余的字符将被截断。这不是由于MySQL服务器施加的任何限制,而是MySQL复制特定的问题。