警告(代码1681):'密码'已弃用,将在以后的版本中删除

时间:2017-09-01 07:34:44

标签: python mysql sql

执行以下查询时,我收到以下警告:

SELECT password(%s);

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

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

1 个答案:

答案 0 :(得分:1)

你无法轻易解决这个问题。警告消息准确地告诉我们发生了什么:clear()SET PASSWORD函数已被弃用,并将在未来的MySQL版本中删除;请参阅@deceze在评论中给出的链接。

因此,如果您希望应用程序与未来版本的MySQL一起运行,请不要使用该语法/函数。

最终,MySQL或您的Python数据库驱动程序提供了抑制某些警告的方法(我现在无法对其进行研究)。但即使您设法以某种方式抑制该警告,这也不会阻止MySQL开发人员从未来版本中删除PASSWORD(...)SET PASSWORD

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