Web上に情報はありふれてると思うので、主に自分用のメモです。
通常通りパスワード変更する場合
- ログイン中の自ユーザを変更する場合
SET PASSWORD = PASSWORD('new-password');
- 別ユーザ(testuser)を変更する場合
SET PASSWORD FOR testuser = PASSWORD('new-password');
- rootユーザのパスワードを変更する場合
-- rootユーザで接続した状態で
SET PASSWORD = PASSWORD('new-password');
ここまでは通常のMySQL(EC2など)と変わらない。
なお、いずれもインスタンス稼働中に変更可能。接続済みセッションへの影響は無い。
rootユーザのパスワードをリセットする場合
rootユーザのパスワードを忘れた場合など、どうしようも無い場面が来てしまった際にはこうする。
参考情報
トラブルシューティング - Amazon Relational Database Service
- AWS CLIを使ってリセットする場合
$ aws rds modify-db-instance --db-instance-identifier <rds-endpoint> --master-user-password <new-password>
- マネジメントコンソールからリセットする場合
- インスタンスを選択して[modify]
- [New Master Password]に新しいパスワードを入る
- [Apply Immediately]にチェックを入れ、[Continue]
- インスタンスのステータスが
resetting-master-credentials
に変わるので、available
に戻れば変更完了。
こちらもインスタンスの再起動は不要、接続済みセッションへの影響は無い。
余談
RDSの話ではないが、EC2にMySQLを入れた場合などOSレイヤにログイン可能な場合は、skip-grant-tablesでMySQLを起動しなおしてリセットするか、mysqladminを使ってリセットする。
参考情報
Mysqlのrootユーザのpasswordを初期化(変更)する - Qiita
ユーザーのパスワードを変更する - MySQL 逆引きリファレンス