2017-09-01 128 views
-2

执行下面的查询时,我得到以下警告被删除:警告(代码1681):“密码”已取消,将在未来的版本

SELECT password(%s); 

Warning (code 1681): 'PASSWORD' is deprecated and will be removed in a future release. 

我该如何解决这个问题?我正在使用Python/pymysql来执行查询。

+1

https://dev.mysql.com/worklog/task/?id=6409 – deceze

+1

要理解如何替换这个,我们需要明白你在这里想要做什么。 – deceze

+0

好吧,但我怎样才能从解密的密码获取密码哈希?我需要它将返回的PASSWORD()结果插入到proxysql中的mysql_users。 –

回答

1

你不能很容易地解决这个问题。警告消息准确告诉发生了什么:SET PASSWORDPASSWORD(...)函数已被弃用,并且将在未来版本的MySQL中被删除;请参阅@deceze在他的评论中给出的链接。

因此,如果您希望您的应用程序能够与未来版本的MySQL一起运行,请不要使用该语法/函数。最终,MySQL或您的Python数据库驱动程序提供了一些手段来抑制某些警告(我现在无法研究这一点)。但即使您设法以某种方式抑制该警告,这也不会使MySQL开发人员从未来的版本中删除SET PASSWORDPASSWORD(...)

问题的一个可能的解决方案是将密码哈希移动到后端应用程序(即到您的PHP/Python/Perl /无论代码)。作为一个重要的好处,这将使您能够使用比MySQL提供的更难以攻击的现代哈希函数。

相关问题