最大MySQL用户密码长度

时间:2011-09-18 23:39:42

标签: mysql passwords

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

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

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

2 个答案:

答案 0 :(得分:15)

这是我用Google搜索时找到的参考页面: Link1Link2

  

如果您正在使用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 个字符中的一个或多个不满意,但话说回来,测试连接有效并且在此期间没有错误安装。