您的位置:首页 > 数据库 > MySQL

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

2009-08-20 18:17 627 查看

网上看到个有趣的问题。一个很简单的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()函数变迁

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: