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

39

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

MySQL使用PASSWORD(str)来加密明文密码str。该哈希密码字符串存储在mysql.user授权表中,数据类型为CHAR(41)

然而,我找不到明文密码str的最大长度,如果有的话。有人能帮忙吗?


这不是一个编程问题。也许在ServerFault上更合适? - Devin Burke
3
它使用了PASSWORD函数,所以我猜它大约是2G。 - NiematojakTomasz
3
这是一个编程问题。 - ErichBSchulz
2
我很久以前就问过这个问题,现在仍然有人点赞,我猜测主要是因为它在谷歌搜索中排名较高。我理解根据SO的规则,原始的关闭是合适的。然而,对于在这里寻找简单答案的人来说,他们离开时感到失望似乎是不幸的。能否有更多SO经验的管理员帮助我重新表述这个问题,使其变得可接受和有用? - Chris
1
@Chris 我也认为这是一个好问题,所以我添加了更多信息使其可以被接受,正如你所要求的那样。此外,我标记了这个问题以便重新打开。 - IvanRF
@IvanRF:感谢您的编辑。我已经重新开放了这个问题。 - BoltClock
2个回答

27
这是我在谷歌搜索时找到的参考页面: 链接1链接2 如果您正在使用MySQL Replication,请注意,当前CHANGE MASTER TO语句中作为一部分使用的密码实际上被限制为32个字符的长度;如果密码更长,则任何超出的字符都将被截断。这不是由于MySQL服务器普遍施加的任何限制,而是与MySQL复制特定问题有关。(有关更多信息,请参见 Bug 43439 。)
修复记录在5.7.5变更日志中,如下所示:
在CHANGE MASTER TO语句中可以使用的最大长度为32个字符。之前,当使用更长的密码时,服务器会默默地截断任何超出的长度。现在,当密码长度超过32个字符时,CHANGE MASTER TO会失败并显示一个错误。
因此,我会安全地假设我的密码不应超过32个字符。

那将是一个非常讨厌的错误。我同意这有效地限制了密码长度。 - Chris
3
支持更长的密码,但不支持复制。 - Peter Thomassen

1
这可能不能完全回答“MySQL最大密码长度是多少……”,但我可以告诉你我的最新发现。
- 在Windows 10上安装:“服务器版本:8.0.24 MySQL Community Server - GPL”
- 服务器、Workbench、文档等全部无误安装。
- 安装后无法以root身份连接,出现“使用密码时用户'root'@'localhost'的访问被拒绝”的错误,同时在输入密码并按Enter后CLI会立即关闭。
- 尝试了网上的几种解决方案,然后想到可能是root密码的问题,我了解到它最多只有32个字符。
- 或许不是32个字符。在第四次安装尝试中,唯一的更改是我用一个新的30个字符的密码替换了32个字符的root密码,现在一切正常了。在安装过程中没有做其他更改。
- 如果真的是32个字符,那么可能发生了截断,或者MySQL对原始root密码中的一个或多个字符不满意,但是测试连接工作正常,安装期间也没有错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接