[MySQL] パスワードを変更する – SET PASSWORD

  • このエントリーをはてなブックマークに追加
  • LINEで送る

MySQL上のユーザーのパスワードを変更するにはSET PASSWORD文を利用します。

SET PASSWORD FOR katsube@localhost = 'password here';

MySQLのバージョンによって記述方法が異なります(上記は5.7以降の書き方)。また同様のSQLでALTER USER文があり、こちらは有効期限などより細かい設定が可能です。

- Sponsored Link -

利用方法

MySQL 5.7以降

SET PASSWORD文の使い方は非常にシンプルで、以下のようにユーザーを指定しないとログイン中のユーザー自身のパスワードを変更します。

SET PASSWORD 'password here';

ログイン中の自分以外を変更したい場合は、FOR句を付けてその後に指定します。

SET PASSWORD FOR katsube@localhost = 'password here';

MySQL5.6以下

5.7以降とそれほど変わらないのですが、パスワードを指定する際にPASSWORD()関数を通す必要があります。

SET PASSWORD = PASSWORD('password here');
SET PASSWORD FOR 'katsube'@'localhost' = PASSWORD('password here');

5.7では非推奨(廃止予定)となっており、8.0ではドキュメントから姿を消しています。MySQLのバージョンアップを行う際にお気をつけください。

その他

旧パスワードを指定

MySQL8.0.13から、変更前と変更後のパスワードを同時に渡しよりセキュアに変更する文法が追加されています。

SET PASSWORD FOR katsube@localhost = 'new password'
REPLACE 'current password';

current passwordとある箇所に現在のパスワードを指定します。もし異なっていた場合はエラーとなり変更されません。

ALTER USERとの違い

SET PASSWORDと似たようなことができるSQLにALTER USER文があります。

ALTER USER katsube@localhost IDENTIFIED BY 'password here';

公式ドキュメントによると以下の通り、ユーザー情報とパスワードの変更を行う場合にALTER USER文を利用します。

Note
Rather than using SET PASSWORD to assign passwords, ALTER USER is the preferred statement for account alterations, including assigning passwords.
13.7.1.10 SET PASSWORD Statement

関連

参考ページ

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで500円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
- Sponsored Link -

ご質問やリクエストなどお気軽に。メールアドレスの入力は任意です。書き込みが反映されるまで時間がかかります。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください