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()函数变迁
阅读更多
相关文章推荐
- 【MySQL】mysql中函数DISTINCT、group by、CONCAT、GROUP_CONCAT的使用以及mysql group_concat函数被截断的问题
- 20080409 - MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决
- 【亲测可用】MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决
- MySQL的max()函数使用时遇到的小问题
- MySQL中使用group_concat()函数数据字符过长报错的问题解决方法
- 详解Mybatis逆向工程中使用Mysql8.0版本驱动遇到的问题
- 历史版本兼容问题 - 使用枚举值带来的潜在风险
- Mysql数据库密码重置,忘记密码的重置方法(因Mysql版本问题可能不能使用该方法)
- CoreData的使用/以及coreData中的多线程问题/版本迁移(二)
- MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决
- 不同版本mysql数据迁移过程所遇到的问题及解决办法
- mysql使用高版本登录低版本的时候注意的问题
- phpstudy2016最新版本mysql无法使用innodb的问题解决
- MySQL 5.7版本的安装使用详细教程以及常见问题
- Android Studio 版本迁移的配置问题以及 GreenDAO3.0的配置使用
- C++使用mysql 库访问MYSQL数据库,mysql_init函数破坏内存的问题
- 使用FreeTextBox等控件带来的问题
- mysql用户认证协议更换(mysql使用问题)
- 正确使用mysql + MFC的一个要注意问题
- 在存储过程中声明参数时使用字符默认大小带来的问题?