【发布时间】:2026-02-20 09:05:01
【问题描述】:
我正在尝试传输一个包含用户及其凭据的哈希表的大型 MySQL 数据库
存储在这些表中的用户密码使用 MySQL 的 password() 方法存储。将它们转移到新机器后,散列密码似乎不再有效。
有什么方法可以将密码()加密字段传输到新服务器并使其正常工作?谢谢
* 编辑 *
我确实遇到了兼容性问题。我的 MySQL 版本生成 16 字节哈希密码,但是我安装的新版本 MySQL 使用新的 41 字节哈希方法。
不过,我找到了解决办法,
我已经在 my.cfg MySQL 配置中设置了old_passwords=1,那么新版本的 mysql 将使用旧的密码哈希。但是,我不建议任何人这样做,因为较新的 mysql 服务器的新哈希方法更好更安全。可悲的是,我不能这样做,因为我在服务器上有超过 100 个应用程序
上面的dlyaza提供了最好的解决方案。
【问题讨论】:
-
您是否将密码复制到数据库的新实例中,您是否使用相同的功能进行登录?
-
应用程序是相同的,我只是想将所有内容从旧服务器原样转移到功能更强大的新服务器上。我复制了所有内容(包括密码),除密码外一切正常...密码示例为:*4ACFE3202A5FF5CF467898FC58AAB1D615029441
-
我运行了一个查询(SELECT password('test'))来查看两台服务器上的结果,结果是:旧服务器:378b243e220ca493 新服务器:*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29