それが示すmysqlシェルの時間ログインをエコーします。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
エラーログが表示されます:Your password has expired. To log in you must change it using a client that supports expired passwords.
通常、スクリプトシェルでは、「パスワードの有効期限が切れています。ログインするには、期限切れのパスワードをサポートするクライアントを使用してパスワードを変更する必要があります。」というメッセージが表示されます。
MySQL 5.7.4から5.7.10まで、default_password_lifetime
変数のデフォルト値は360(年)です。これらのバージョンでは、この変数または個々のユーザーアカウントを変更しない場合、すべてのユーザーパスワードは360日後に期限切れになります。
自動パスワード期限切れを防ぐには、rootとしてログインします。
mysql -u root -p
次に、自動的にサーバーに接続するクライアントの場合(スクリプトなどから)、これらのクライアントのパスワードの有効期限設定を変更します。
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
またはすべてのユーザーの自動パスワード有効期限を無効にする:
SET GLOBAL default_password_lifetime = 0;
MySQL:パスワードの有効期限とサンドボックスモード
MySQL:パスワード有効期限ポリシー
MySQLサーバー5.7のパスワード有効期限ポリシー
接続で サンドボックスモード を有効にする必要があります。 mysql CLIの場合、それを指定するための パラメーター があります。
mysql -u <user> [other params] --connect-expired-password
次に SET PASSWORD ステートメントを使用してパスワードをリセットする必要があります(現在の値にリセットすることが許可されています)。
これ は私のために働きます:
CMDまたはLINUX端末で、rootとしてログインします。
mysql -u root -p
次に、すべてのユーザーのパスワードの自動有効期限を無効にします。
SET GLOBAL default_password_lifetime = 0;
my.cnf
でこれを変更:
[mysqld]
default_password_lifetime=180
これに:
[mysqld]
default_password_lifetime=0
次に、mysqlサーバーを再起動します。service mysql restart
行default_password_lifetime
を変更すると、サーバー上のすべてのユーザーのグローバル設定に影響するため、必要な場合にのみ行ってください。このソリューションは公式 MySQL 5.6パスワードの有効期限ポリシー によって進められています。