[MySQL] ユーザー名を変更する - RENAME USER

MySQLのユーザー名を変更する場合にはRENAME USER文を利用します。

RENAME USER oldman@localhost TO youngman@localhost;

使い方

基本的な使い方

最初に来るのが旧ユーザー、後ろで指定しているのが新ユーザーの名称です。アットマーク(@)から後ろを省略した場合は@'%'と同じ意味になります。

RENAME USER (旧ユーザー) TO (新ユーザー);

ログイン元の変更

ログイン元のホストも同時に変更できます。ユーザー名はそのままでホスト名だけの変更も可能です。

RENAME USER oldman@localhost TO youngman@127.0.0.1;

権限やパスワードは引き継がれる

SELECTとINSERTが付与されたユーザーの名前とホストを変更します。

mysql> show grants for katsube@localhost;
+------------------------------------------------------+
| Grants for katsube@localhost                         |
+------------------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO 'katsube'@'localhost' |
+------------------------------------------------------+

ユーザー名とホストを変更しました。

RENAME USER katsube@localhost TO makito@127.0.0.1;

新ユーザーを見ると権限が引き継がれているのがわかります。

mysql> show grants for makito@127.0.0.1;
+-----------------------------------------------------+
| Grants for makito@127.0.0.1                         |
+-----------------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO 'makito'@'127.0.0.1' |
+-----------------------------------------------------+

MySQLクライアントを一度終了し、もう一度ログインするとパスワードも同じものが利用できるのが確認できます。

mysql> \q

$ mysql -u makito -p

参考ページ