我拥有对“MYSQL 5.0.27-community-nt-log”数据库的完全访问权限,我们对核心应用程序的新更新之一需要 PHP 5.4,在安装和配置之后,我遇到了有关旧密码和新密码的错误。
我已经关注了我能找到的每一个线程,我很确定我理解这个过程:
- 禁用“旧密码”
- 将密码重置为新的 41 加密
但我似乎无法将“old_passwords”设置为“OFF”。以 root 身份登录我尝试了以下操作:
- 我已将其从 my.cnf 文件中删除(我也尝试将其设置为 '0'、'False' 等)
- 在全局和会话的查询浏览器中手动设置它
- 在 MYSQL 管理员中打开/关闭选项
并重新启动服务,但“显示像“old_passwords”这样的变量总是报告为“开启”。
更改密码的长度仍为 16。
我敢肯定,一旦我能够关闭此变量,我应该会没事的,有什么建议吗?
我有 3 个额外的建议(选择一个):
old_password=1
从一开始就设置)mysql.user
为 41 个字符的加密密码格式无论您做什么,都不要使用 MD5 功能来制作新密码。使用密码功能。它与 MD5 非常不同:
密码函数PASSWORD函数相当于
我在 2 年前从这篇 PalominoDB 博客文章中了解到这一点。
您可以使用OLD_PASSWORD函数对 PASSWORD 函数进行 QA 。比较
SELECT PASSWORD(@my_new_password);
WITH的输出SELECT OLD_PASSWORD(@my_new_password);
。我忘了早点回来,但提供的答案都没有奏效,经过几天的玩耍,我最终硬着头皮将 MySQL 服务器升级到了最新版本。
所以最后我从来没有找到一个可行的解决方案,但问题已经消失了。
如果您
old_passwords=1
在 my.cnf 文件中设置较低,则最后一个设置优先。因此,请检查 my.cnf 的完整长度以获取设置此变量的另一行。就我而言,日志中有错误:
在
mysql_fix_privilege_tables
MySQL 5.1 中被 mysql_upgrade 取代。对于我的 Mariadb 5.5,我跑去修复它:
并重新启动服务。