【问题标题】:How to switch old-passwords OFF in Mysql 4.1如何在 Mysql 4.1 中关闭旧密码
【发布时间】:2009-11-29 14:06:11
【问题描述】:

我很难将我的 MySQL 4.1 数据库从旧的 16 字节密码哈希迁移到新的 41 字节哈希。问题是,mysqld 服务器会自动以“old-passwords = on”指令启动,它将新密码的长度限制为 41 字节。

我的问题:有谁知道我如何告诉 mysqld 在没有“old-passwords = on”指令的情况下运行?我尝试了 my.ini、命令行、在本地设置变量,但没有任何效果。

非常感谢! 菲利普

【问题讨论】:

    标签: mysql passwords


    【解决方案1】:

    首先要检查的是mysql数据库中userPassword字段的宽度。在 4.1 之前,这是 16 个字符宽。升级到 4.1 时,宽度应该已通过提供的 mysql_upgrade 实用程序更改为 41 个字符。如果由于某种原因错过了该步骤,服务器将默认使用旧的 16 字节哈希,这就是您描述的行为。

    在 MySQL 文档中有一个 write up

    如果您发现您的表确实需要从 char(16) 更新到 char(41) 并且您拥有 mysql_update 实用程序,请运行该实用程序以完成升级。或者(进行备份,然后您可以)使用以下方法手动更新:

    ALTER TABLE user
    MODIFY Password char(41) character set latin1 collate latin1_bin NOT NULL default ''
    

    【讨论】:

    • 谢谢马丁,你提到的更新密码长度也是解决我的问题的必要步骤,但不是唯一的。我发现我必须在 my.ini 配置文件中设置标志“old-password=0”。在 ini 文件的正确部分设置此选项非常重要。部分名称似乎与 Windows 服务名称相对应:在我的情况下,Windows 服务名称是“MySQL4” - 不幸的是,这个部分必须手动创建,因为安装后的默认名称似乎是“mysqld”。万事如意!
    猜你喜欢
    • 2013-10-05
    • 2016-07-18
    • 2011-03-03
    • 2014-11-17
    • 2012-12-10
    • 2012-05-28
    • 2012-01-29
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多