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