2017-09-01 15 views
-2

に削除されます、次のクエリを実行するときに、私は次の警告を取得しています:は(コード1681)警告:「PASSWORD」は廃止されており、将来のリリース

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

でも、復号化されたパスワードからパスワードハッシュを取得する方法はありますか? proxysqlのmysql_usersに返されたPASSWORD()の結果を挿入するために必要です。 –

答えて

1

あなたはそれを簡単に修正することはできません。警告メッセージは、何が起こっているかを正確に伝えます:SET PASSWORDPASSWORD(...)関数は廃止され、将来のバージョンのMySQLでは削除されます。彼のコメントで@decezeが与えたリンクを参照してください。

アプリケーションを将来のバージョンのMySQLで実行したい場合は、その構文/関数を使用しないでください。

最終的に、MySQLまたはPythonデータベースドライバは、特定の警告を抑制する手段を提供しています(私はこれを今研究することはできません)。しかし、どういうわけかその警告を抑制することができたとしても、MySQL開発者は将来のバージョンからSET PASSWORDPASSWORD(...)を削除しません。

パスワードハッシングをバックエンドアプリケーション(つまり、PHP/Python/Perl/Whateverコード)に移動することで解決できる可能性があります。重要な利点として、これはMySQLが提供するものよりも攻撃するのがはるかに困難な現代のハッシュ関数の1つを使用することを可能にします。

関連する問題