连接到MySQL Server的客户端的所需凭据可以包含密码。本节介绍如何为MySQL帐户分配密码。
MySQL存储凭据用户
表中mysql.
系统数据库。分配或修改密码的操作只允许给用户创建用户
特权,或者,特权给mysql.
数据库(插入
创建新帐户的特权,更新
修改现有帐户的特权)。如果read_only
系统变量是启用的,使用帐户修改语句等创建用户
或改变用户
另外需要connection_admin.
特权(或被弃用的超级
特权)。
这里的讨论概述了仅用于最常见的密码分配语句的语法。有关其他可能性的完整细节,请参阅mysql.user.系统表。对于这里描述的语句,MySQL自动散列指定的密码。还有for的语法创建用户
和改变用户
这允许按字面意思指定散列值。具体请参见各语句的描述。
若要在创建新帐户时指定密码,请使用创建用户
并包括一个鉴定
条款:
创建用户'jeffrey'@'localhost'密码'
创建用户
还支持指定帐户身份验证插件的语法。看改变用户
与A.的声明鉴定
条款:
改变用户'jeffrey'@'localhost'识别'密码'
如果您未连接为匿名用户,则可以在字面上未命名您自己的帐户来更改自己的密码:
aller exter yours user user()标识密码'
若要从命令行更改帐户密码,请使用mysqladmin命令:
mysqladmin -u.用户名- h主机名密码 ”密码“
此命令设置密码的帐户是带有行的一个mysql.user.
匹配的系统表用户名
在用户
列和客户端主机从中连接在宿主
柱子。
使用mysqladmin应该考虑不安全.在某些系统上,您的密码可以对系统状态程序可见PS.其他用户可以调用它来显示命令行。MySQL客户端通常会在初始化过程中用0覆盖命令行密码参数。然而,仍然有一个短暂的时间间隔,该值是可见的。此外,在某些系统上,这种覆盖策略是无效的,密码仍然是可见的PS..(Systemv UNIX系统,也许其他人受到此问题的影响。)
如果您使用的是MySQL复制,请注意,当前,副本使用的密码作为a的一部分将复制源更改为
声明(来自MySQL 8.0.23)或改变主
语句(在MySQL 8.0.23之前)的长度有效限制为32个字符;如果密码较长,任何多余的字符都会被截断。这不是由于MySQL服务器通常强加的限制,而是一个特定于MySQL复制的问题。