首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL -无法更改“old_passwords”变量

MYSQL -无法更改“old_passwords”变量
EN

Database Administration用户
提问于 2013-09-27 00:08:28
回答 4查看 12.4K关注 0票数 3

我完全可以访问一个‘MySQL5.0.27-community log’数据库--我们对核心应用程序的新更新之一需要PHP 5.4,在安装和配置完之后,我陷入了旧密码和新密码的错误。

我已经跟踪了我能找到的每一条线索,我很确定我理解这个过程:

  1. 禁用“old_passwords”
  2. 将密码重置为新的41加密

但我似乎无法将“old_passwords”设置为“OFF”。作为root登录,我尝试了以下几点:

  • 我已经将其从my.cnf文件中删除(我还尝试将其设置为“0”、“False”等)
  • 在查询浏览器中手动设置全局和会话
  • 在MYSQL管理员中打开/关闭该选项

并重新启动服务,但“显示”变量(如“old_passwords”)总是以“ON”的形式报告。

更改密码的长度仍为16。

我相信一旦我能关掉这个变量,我会没事的,有什么建议吗?

EN

回答 4

Database Administration用户

回答已采纳

发布于 2013-12-26 20:16:48

我还有3项建议(选择一项):

  • 降级PHP驱动程序(该驱动程序理解16个字符的加密密码)
  • 升级到最新的MySQL (可以从一开始就设置old_password=1 )
  • mysql.user中的所有密码更改为41个字符加密密码格式

无论您做什么,不要使用MD5函数来创建新的密码。使用密码函数。它与MD5有很大的不同:

密码函数密码函数等效于

代码语言:javascript
复制
SET @my_new_password = 'WhateverIWantAsThePassword';
SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1(@my_new_password))))) MySQLPWDHASH;

就在两年前,我从这篇PalominoDB博客文章那里学到了这个。

您可以使用年长的函数来验证密码函数。比较了SELECT PASSWORD(@my_new_password);SELECT OLD_PASSWORD(@my_new_password);的输出。

票数 3
EN

Database Administration用户

发布于 2014-01-20 01:48:36

我忘了早些时候返回,但是所提供的答案都没有奏效,在玩了几天之后,我终于咬紧牙关,把MySQL服务器升级到了最新版本。

因此,最终我没有找到一个可行的解决方案,但问题已经解决了。

票数 1
EN

Database Administration用户

发布于 2013-09-27 00:53:27

如果在您的old_passwords=1文件中设置了较低的my.cnf,则最后一个设置将具有优先权。因此,请检查my.cnf的完整长度,以获得设置此变量的另一行。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/50610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档