MySQL用户密码的最大长度是多少?
MySQL使用PASSWORD(str)
加密明文密码str
。此散列密码字符串存储在mysql.user
授权表中,并带有CHAR(41)
数据类型。
但是,我无法找到明文密码str
的最大长度(如果有)。有人可以帮忙吗?
答案 0 :(得分:15)
这是我用Google搜索时找到的参考页面: Link1和 Link2
如果您正在使用MySQL Replication,请注意,目前,a 复制从属使用的密码,作为CHANGE MASTER TO的一部分 声明实际上限制为32个字符;如果 密码更长,任何多余的字符都被截断。这不是 由于MySQL服务器通常施加的任何限制,而是 MySQL Replication特有的问题。 (有关详细信息,请参阅Bug 43439。)
修正记录在5.7.5 changelog中,如下所示:
CHANGE中可用于密码的最大长度 MASTER TO语句是32个字符。以前,当时间更长 使用密码,任何多余的长度都被默默地截断 由服务器。现在密码的长度超过32 字符,CHANGE MASTER TO失败并显示错误。
所以我安全地假设我的密码不应超过32个字符。
答案 1 :(得分:1)
这可能不能完全回答“什么是最大 MySQL pwd 长度...”,但我可以告诉你我最近的发现。
-- 在 Windows 10 中安装:“服务器版本:8.0.24 MySQL 社区服务器 - GPL”
-- 服务器、工作台、文档,安装无误。
-- 安装后无法以 root 身份连接,得到“用户'root'@'localhost' 访问被拒绝(使用密码是)”,并且 CLI 将在输入密码并按 Enter 后立即关闭。>
--从网上尝试了几种解决方案,然后我想到可能是root密码,我的理解是最多32个字符。
-- 可能不是最多 32 个字符。在第四次安装尝试中,唯一的变化是我用一个新的 30 个字符的密码替换了 32 个字符的 root 密码,现在一切正常。安装过程中没有其他变化。
-- 如果真的是最多 32 个字符,那么可能会发生截断,或者 MySQL 可能对原始 root 密码中的 32 个字符中的一个或多个不满意,但话说回来,测试连接有效并且在此期间没有错误安装。