CREATE USER 'kristofer' IDENTIFIED WITH 'sha256_password'; SET GLOBAL old_passwords= 2; SET SESSION old_passwords= 2; SET PASSWORD FOR 'kristofer'=PASSWORD('secret'); SELECT user, plugin FROM mysql.user; user plugin root mysql_native_password root mysql_native_password root mysql_native_password root mysql_native_password kristofer sha256_password SELECT USER(),CURRENT_USER(); USER() CURRENT_USER() kristofer@localhost kristofer@% DROP USER 'kristofer'; GRANT ALL ON *.* TO 'kristofer'@'localhost' IDENTIFIED WITH 'sha256_password'; GRANT ALL ON *.* TO 'kristofer2'@'localhost' IDENTIFIED WITH 'sha256_password'; SET PASSWORD FOR 'kristofer'@'localhost'=PASSWORD('secret2'); SET PASSWORD FOR 'kristofer2'@'localhost'=PASSWORD('secret2'); ERROR 28000: Access denied for user 'kristofer'@'localhost' (using password: YES) SELECT USER(),CURRENT_USER(); USER() CURRENT_USER() kristofer@localhost kristofer@localhost SHOW GRANTS FOR 'kristofer'@'localhost'; Grants for kristofer@localhost GRANT ALL PRIVILEGES ON *.* TO 'kristofer'@'localhost' IDENTIFIED BY PASSWORD '<non-deterministic-password-hash>' Change user (should succeed) SELECT USER(),CURRENT_USER(); USER() CURRENT_USER() kristofer2@localhost kristofer2@localhost **** Client default_auth=sha_256_password and server default auth=native user() current_user() kristofer@localhost kristofer@localhost **** Client default_auth=native and server default auth=native user() current_user() kristofer@localhost kristofer@localhost **** Client default_auth=sha_256_password + public key on file. user() current_user() kristofer@localhost kristofer@localhost DROP USER 'kristofer'@'localhost'; DROP USER 'kristofer2'@'localhost'; GRANT ALL ON *.* TO 'kristofer'@'localhost' IDENTIFIED WITH 'sha256_password'; SET PASSWORD FOR 'kristofer'@'localhost'=PASSWORD(''); ERROR 28000: Access denied for user 'kristofer'@'localhost' (using password: YES) SELECT USER(),CURRENT_USER(); USER() CURRENT_USER() kristofer@localhost kristofer@localhost SHOW GRANTS FOR 'kristofer'@'localhost'; Grants for kristofer@localhost GRANT ALL PRIVILEGES ON *.* TO 'kristofer'@'localhost' DROP USER 'kristofer'@'localhost'; GRANT ALL ON *.* TO 'kristofer'@'33.33.33.33' IDENTIFIED WITH 'sha256_password'; SET PASSWORD FOR 'kristofer'@'33.33.33.33'=PASSWORD(''); Connection should fail for localhost ERROR 28000: Access denied for user 'kristofer'@'localhost' (using password: NO) DROP USER 'kristofer'@'33.33.33.33'; SET GLOBAL old_passwords= 2; SET SESSION old_passwords= 2; CREATE TABLE t1 (c1 VARCHAR(10) ); INSERT INTO t1 VALUES ('secret'); SELECT HEX(PASSWORD(c1)) FROM t1; HEX(PASSWORD(c1)) success DROP TABLE t1; SELECT PASSWORD(NULL), PASSWORD(''); PASSWORD(NULL) PASSWORD('') CREATE TABLE t1( c1 text, c2 varchar (2)); INSERT INTO t1 VALUES (NULL,''),(NULL,''),(NULL,''); SELECT PASSWORD(c1), PASSWORD(c2) FROM t1; PASSWORD(c1) PASSWORD(c2) DROP TABLE t1; CREATE USER 'kristofer' IDENTIFIED WITH 'sha256_password'; SET GLOBAL old_passwords= 2; SET SESSION old_passwords= 2; SET PASSWORD FOR 'kristofer'=PASSWORD('secret'); SELECT user, plugin FROM mysql.user; user plugin root mysql_native_password root mysql_native_password root mysql_native_password root mysql_native_password kristofer sha256_password SELECT USER(),CURRENT_USER(); USER() CURRENT_USER() kristofer@localhost kristofer@% UPDATE mysql.user SET authentication_string= '$' WHERE user='kristofer'; FLUSH PRIVILEGES; SELECT user,authentication_string,password,plugin FROM mysql.user WHERE user='kristofer'; user authentication_string password plugin kristofer $ sha256_password ERROR 28000: Access denied for user 'kristofer'@'localhost' (using password: YES) UPDATE mysql.user SET authentication_string= '$5$asd' WHERE user='kristofer'; FLUSH PRIVILEGES; SELECT user,authentication_string,password,plugin FROM mysql.user WHERE user='kristofer'; user authentication_string password plugin kristofer $5$asd sha256_password ERROR 28000: Access denied for user 'kristofer'@'localhost' (using password: YES) DROP USER kristofer; SET GLOBAL old_passwords= default;