Die Funktion MySQL Password()
generiert derzeit (ca. 2016) einen nicht binären String mit bis zu 41 Zeichen. Dies ist sichtbar durch entweder ruft
SHOW CREATE TABLE mysql.user;
und Untersuchen der password
Spalte (die einen gehashten Wert enthält):
`Password` char(41) ...
für, sagen wir, MySQL 5.6 oder durch die gleiche Klartext-Wert Hashing und Futter es an den Ausgang der gleichen SHOW CREATE TABLE
auf MySQL 5,7
`authentication_string` text ...
die Hash-Werte übereinstimmen, jedoch in einem anderen Schema-Layout. Wiederum wird einer in einer VARCHAR(41)
, der andere in einer TEXT
, wie die gleiche mysql_native_password
PAM, verwendet. Zur Zeit. Password()
wurde ab 5.7.6 veraltet, was bedeutet, dass ein neues Plugin in Arbeit ist. Was sie sein sollten. Sie sind Plugins nach allem.
Was bedeutet das alles? Es bedeutet, dass Ihr Schema eine ausreichend breite Spalte haben muss, um Ihre Verwendung von Password()
zu handhaben (Hinweis 5.7 zu TEXT wechseln). Und erinnern Sie sich daran, dass es veraltet ist, also halten Sie Ausschau nach Veränderungen mit MySQL Hashing in den nächsten Jahren.
Welche Art von Ausgabe produziert 'PASSWORD()' für Sie? – tadman
Überprüfen Sie hier http://sqlfiddle.com/#!9/656b85/1, scheint gut. – Blank