MySQL存储帐户用户
表的表mysql.
系统数据库。根据用户名和客户端主机或主机来定义一个帐户,用户可以从用户连接到服务器。有关帐户表示的信息用户
表,参见第6.2.3节“授予表”.
帐户还可以具有诸如密码的身份验证凭据。凭据由帐户身份验证插件处理。MySQL支持多个身份验证插件。其中一些使用内置身份验证方法,而其他人使用外部身份验证方法启用身份验证。看第6.2.17节,“可插拔身份验证”.
MySQL和操作系统使用的用户名和密码之间有几种区别:
MySQL用于身份验证目的的用户名与Windows或Unix使用的用户名(登录名)无关。在Unix上,大多数MySQL客户端默认尝试使用当前的Unix用户名作为MySQL用户名进行登录,但这只是为了方便。可以很容易地重写默认值,因为客户端程序允许使用
- u
或- 用户
选项。这意味着任何人都可以尝试使用任何用户名连接到服务器,因此除非所有MySQL帐户都有密码,否则无法以任何方式制作数据库。任何指定没有密码的帐户的用户名可以成功连接到服务器的用户名。MySQL用户名长达32个字符。操作系统用户名可能具有不同的最大长度。
警告MySQL用户名长度限制是在MySQL服务器和客户机中硬编码的,并试图通过修改
mysql.
数据库不起作用.你永远不应该改变表格的结构
mysql.
除了通过描述的过程之外的任何方式数据库第2.11节“升级mysql”.尝试以任何其他方式重新定义MySQL的系统表导致未定义和不受支持的行为。服务器可以自由地忽略由于此类修改而变坏的行。为使用内置身份验证方法的帐户验证客户端连接,服务器使用存储在
用户
表格这些密码与用于登录操作系统的密码不同。之间没有必要的联系“外部的“密码用于登录Windows或UNIX计算机以及用于访问该计算机上的MySQL Server的密码。如果服务器使用其他一些插件对客户端进行身份验证,则插件实现可能或可能不使用存储在中的密码的身份验证方法
用户
表格在这种情况下,也可能使用外部密码对MySQL服务器进行身份验证。存储在中的密码
用户
表是使用Plugin特定算法加密的。如果用户名和密码仅包含ASCII字符,则无论字符集设置如何,都可以连接到服务器。要启用连接用户名或密码包含非ASCII字符时,客户端应用程序应调用
mysql_options()
C API功能MYSQL_SET_CHARSET_NAME
选项和适当的字符集名称为参数。这导致使用指定的字符集进行身份验证。否则,除非服务器默认字符集与身份验证默认值中的编码相同,否则身份验证失败。标准MySQL客户端计划支持
--default字符集
选项原因mysql_options()
被称为刚才描述的。此外,如上所述支持字符集自动检测第10.4节,“连接字符集和排序规则”.对于使用不基于C API的连接器的程序,连接器可以提供相同的mysql_options()
可以使用它。检查连接器文档。10bet官方网站前面的票据不适用
UCS2
那UTF16.
, 和UTF32.
,不允许作为客户端字符集。
mysql安装过程填充授权表根
如下所述第2.10.4节“确保初始MySQL帐户”,这也讨论了如何为其分配密码。此后,您通常使用诸如此类的语句设置,修改和删除MySQL帐户创建用户
那删除用户
那授予
, 和撤销
.看第6.2.8节“添加帐户,分配权限和丢弃帐户”, 和第13.7.1节“账户管理陈述”.
要使用命令行客户端连接到MySQL服务器,请指定要使用的帐户所必需的用户名和密码选项:
mysql——user=finley——passworddb_name.
如果您喜欢短选项,则该命令如下所示:
shell> mysql -u finley -pdb_name.
如果您省略了以下密码值- 密码
或- p
选项(如所示),客户机提示输入一个。或者,密码可以在命令行中指定:
shell> mysql -user = finley --password =密码db_name.shell> mysql -u finley -p密码db_name.
如果你使用- p
选项,必须有没有空间之间- p
和以下密码值。
在命令行上指定密码应该被认为是不安全的。看第6.1.2.1节,“最终用户密码安全指引”.为避免在命令行上提供密码,请使用选项文件或登录路径文件。看第4.2.2.2节“使用选项文件”。, 和第4.6.7节“mysql_config_editor - mysql配置实用程序”.
有关指定用户名,密码和其他连接参数的其他信息,请参阅第4.2.4节“使用命令选项连接到MySQL服务器”.