欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 版本迁移带来的PASSWORD()函数使用的问题

程序员文章站 2022-07-12 12:15:34
...

网上看到个有趣的问题。一个很简单的php demo,使用Mysql做后台数据库。重新部署到一个机器上,导入数据到新得MYSQL服务器。结果原来可以正常登陆的用户名和密码都不能用了。

密码存入的时候使用的是PASSWORD()函数。问题就出在这个PASSWORD函数。从5。1开始,MYSQL对PASSWORD函数做了改变,结果的字长需要最少41bytes。而早版本中的PASSWORD()字长只要16byte。所以user表的schema设计一般都是给了不到41字长得。到新版本中,PASSWORD()得结果就给截断了。然后通过

select user_id from user_table where user_name='$user_name' user_password=PASSWORD('$password')



这个查询语句,肯定查不到正确的值,存在table中的password已经短了一大截了。

更详细的请看 MySQL官方手册关于PASSWORD()函数变迁

 

相关标签: MySQL PHP