Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL可以处理新旧样式的混合密码吗_Mysql - Fatal编程技术网

MySQL可以处理新旧样式的混合密码吗

MySQL可以处理新旧样式的混合密码吗,mysql,Mysql,我们将数据库迁移到一个新服务器上,不幸的是,该服务器的默认设置为old_passwords=1 因为我们使用PHP中的PASSWORD()实现某些功能,所以这些应用程序的较新密码,当然还有新创建的mysql root和其他用户都有老式密码 我想回到新的风格密码,以便用户帐户从迁移前再次工作,但我也希望新创建的用户能够仍然登录 阅读>4.1服务器似乎可以处理旧密码和新密码,但我希望在从my.cnf中删除该行、重新启动服务器并导致大量故障之前,先确认我正确读取了这些信息。从我的阅读内容来看,这非常清

我们将数据库迁移到一个新服务器上,不幸的是,该服务器的默认设置为old_passwords=1

因为我们使用PHP中的PASSWORD()实现某些功能,所以这些应用程序的较新密码,当然还有新创建的mysql root和其他用户都有老式密码

我想回到新的风格密码,以便用户帐户从迁移前再次工作,但我也希望新创建的用户能够仍然登录


阅读>4.1服务器似乎可以处理旧密码和新密码,但我希望在从my.cnf中删除该行、重新启动服务器并导致大量故障之前,先确认我正确读取了这些信息。从我的阅读内容来看,这非常清楚:

4.1及更高版本的客户端可以使用具有短哈希或长哈希的帐户进行身份验证

但只要确保你所有的客户都是4.1或更高版本。否则,如果4.1版本之前的用户更改密码,他们将被锁定

如果没有--old passwords选项,则会出现以下不希望出现的情况 有可能:

  • 旧客户端连接到具有短密码哈希的帐户

  • 客户端更改自己的密码。如果没有旧密码,这个 导致帐户具有长密码哈希

  • 下次旧客户端尝试连接到该帐户时,它 无法,因为帐户有一个需要 身份验证期间的新哈希机制。(一旦账户有 用户表中的长密码哈希,只有4.1及更高版本的客户端可以 对其进行身份验证,因为4.1之前的客户端无法理解长消息 散列。)


只是为了澄清一下,现在创建的密码是4.1之前的16字节密码,您希望使用41字节作为默认值,但是您想知道,如果您关闭old_password开关,mysql是否仍会对老用户进行身份验证?是的,因此迁移后创建的密码可以工作,移民之前的那些人现在已经破产了