web-dev-qa-db-ja.com

mysql 5.7.8-rc(debian)を更新すると、mysqlの再起動後に「パスワードの有効期限が切れました」

それが示す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.

6
lasteye

MySQLパスワードが期限切れです

通常、スクリプトシェルでは、「パスワードの有効期限が切れています。ログインするには、期限切れのパスワードをサポートするクライアントを使用してパスワードを変更する必要があります。」というメッセージが表示されます。

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のパスワード有効期限ポリシー

5
Dave Everitt

接続で サンドボックスモード を有効にする必要があります。 mysql CLIの場合、それを指定するための パラメーター があります。

mysql -u <user> [other params] --connect-expired-password

次に SET PASSWORD ステートメントを使用してパスワードをリセットする必要があります(現在の値にリセットすることが許可されています)。

4
jkavalik

これ は私のために働きます:

CMDまたはLINUX端末で、rootとしてログインします。

mysql -u root -p

次に、すべてのユーザーのパスワードの自動有効期限を無効にします。

SET GLOBAL default_password_lifetime = 0;
2
LiveDev

my.cnfでこれを変更:

[mysqld]
default_password_lifetime=180

これに:

[mysqld]
default_password_lifetime=0

次に、mysqlサーバーを再起動します。service mysql restart

default_password_lifetimeを変更すると、サーバー上のすべてのユーザーのグローバル設定に影響するため、必要な場合にのみ行ってください。このソリューションは公式 MySQL 5.6パスワードの有効期限ポリシー によって進められています。

0
Martin