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