2017-09-01 51 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提供的更難以攻擊的現代哈希函數。