SHOW VARIABLES LIKE 'disconnect_on_expired_password';
Variable_name	Value
disconnect_on_expired_password	ON
## Test mysql client in non-interactrive mode
CREATE USER 'bernt';
SET PASSWORD FOR 'bernt' = PASSWORD('secret');
ALTER USER 'bernt' PASSWORD EXPIRE;
# Attempt to login should fail
Warning: Using a password on the command line interface can be insecure.
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
DROP USER 'bernt';
## Test mysqltest
CREATE USER 'bernt';
SET PASSWORD FOR 'bernt' = PASSWORD('secret');
ALTER USER 'bernt' PASSWORD EXPIRE;
# Login with mysqltest should work
# But doing something should fail
SELECT 1;
ERROR HY000: You must SET PASSWORD before executing this statement
# Setting password should work
SET PASSWORD = PASSWORD('newsecret');
DROP USER 'bernt';
## Test mysqladmin
CREATE USER 'bernt';
SET PASSWORD FOR 'bernt' = PASSWORD('secret');
GRANT ALL ON *.* TO 'bernt' WITH GRANT OPTION;
ALTER USER 'bernt' PASSWORD EXPIRE;
# Doing something should not connect
Warning: Using a password on the command line interface can be insecure.
MYSQLADMIN: connect to server at 'localhost' failed
error: 'Your password has expired. To log in you must change it using a client that supports expired passwords.'
# Setting password should succeed
Warning: Using a password on the command line interface can be insecure.
DROP USER 'bernt';
