【问题标题】:Maximum MySQL user password lengthMySQL 用户密码最大长度
【发布时间】:2011-11-19 21:09:08
【问题描述】:

MySQL 用户密码的最大长度是多少?

MySQL 使用PASSWORD(str) 加密明文密码str。此散列密码字符串以CHAR(41) 数据类型存储在mysql.user 授权表中。

但是,我找不到明文密码str 的最大长度(如果有的话)。有人可以帮忙吗?

【问题讨论】:

  • 这不是编程问题。也许在 ServerFault 上更好?
  • 它使用PASSWORD function,所以我猜大概是2G。
  • 这是一道编程题
  • 我很久以前就问过这个问题,并且赞成票不断涌入,我怀疑主要是因为它在谷歌搜索中排名很高。我了解根据 SO 的规则,最初的关闭是适当的。然而,不幸的是,在这里寻找简单答案的人应该失望了。有更多 SO 经验的版主可以帮我改写它,让它变得可以接受和有用吗?
  • @Chris 我也认为这是一个很好的问题,所以我添加了更多信息以使其可以接受,正如你所问的。此外,标记了要重新打开的问题。

标签: mysql passwords


【解决方案1】:

这是我在谷歌上找到的参考页面: Link1Link2

如果您使用 MySQL 复制,请注意,目前, 复制从属服务器使用的密码作为 CHANGE MASTER TO 的一部分 语句的长度实际上限制为 32 个字符;如果 密码更长,任何多余的字符都会被截断。这不是 由于 MySQL 服务器通常施加的任何限制,而是 MySQL 复制特有的问题。 (有关详细信息,请参阅Bug 43439。)

修复记录在5.7.5 changelog,如下:

CHANGE 中密码可以使用的最大长度 MASTER TO 语句为 32 个字符。以前,当更长 使用密码,任何多余的长度都会被默默地截断 由服务器。现在当密码长度超过 32 字符,CHANGE MASTER TO 失败并出现错误。

所以我可以安全地假设我的密码不应超过 32 个字符。

【讨论】:

  • 这将是一个讨厌的错误。我同意有效限制密码长度。
  • 支持更长的密码,只是不支持复制。
【解决方案2】:

这可能无法完全回答“MySQL pwd 的最大长度是多少...”,但我可以告诉你我最近的发现。

-- 在 Windows 10 中安装:“服务器版本:8.0.24 MySQL Community Server - GPL”

-- 服务器、工作台、文档,全部安装无误。

-- 安装后无法以 root 身份连接,出现“用户 'root'@'localhost' 的访问被拒绝(使用密码是)”,并且 CLI 将在输入密码并按 Enter 后立即关闭。

-- 尝试了几种网络解决方案,然后我突然想到它可能是root密码,我的理解是它最多32个字符。

-- 可能不是最多 32 个字符。在第 4 次安装尝试中,唯一的改变是我将 32 个字符的 root 密码替换为新的 30 个字符的密码,现在一切正常。安装过程中没有其他变化。

-- 如果它确实是最大 32 个字符,那么可能会发生截断,或者 MySQL 可能对原始 root 密码中的 32 个字符中的一个或多个不满意,但话又说回来,测试连接有效并且在测试期间没有错误安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2020-02-07
    • 2012-06-03
    相关资源
    最近更新 更多