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()函数变迁
上一篇: LeeCode_3.无重复字符的最长子串
下一篇:
java泛型(Class
推荐阅读
-
MySQL 版本迁移带来的PASSWORD()函数使用的问题
-
MySQL 版本迁移带来的PASSWORD()函数使用的问题
-
解决seata不能使用mysql8版本的问题方法
-
Mysql使用sum()函数返回null的问题详解
-
linux上,mysql使用聚合函数group by 时报错:SELECT list is not in GROUP BY clause and contains nonaggre的问题
-
[疑难问题]PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): .
-
Django2.2使用mysql数据库pymysql版本不匹配问题的解决过程与总结
-
解决seata不能使用mysql8版本的问题方法
-
Mysql使用sum()函数返回null的问题详解