MySQLデータベースのバックアップ(に必要最小限な権限を付与した)ユーザの作成
環境
| # | バージョン |
|---|---|
| OS | CentOS Linux release 7.5.1804 |
| mysql | 14.14 Distrib 5.7.24 |
| mysqldump | 10.13 Distrib 5.7.24 |
スクリプト
MySQL8.0
MySQL8.0からはGRANTと同時にユーザを作成することができなくなりました。このため最初にユーザを作成(create user)してから、権限付与(grant)します。
# ユーザ作成
create user '<username>'@'%' identified by '<password>';
# 権限付与
GRANT SELECT, LOCK TABLES, SHOW VIEW, RELOAD ON <dbname>.* TO '<username>'@'%';
# 変更の反映
flush privileges;
MySQL5.7まで
GRANT時に新規ユーザ作成も可能です。上述した手順(ユーザ作成ー>権限付与)も可能なので参考程度で。
GRANT
SELECT,
LOCK TABLES,
SHOW VIEW,
RELOAD
ON <dbname>.*
TO '<username>'@'localhost'
identified by '<password>'
;
上記のスクリプトはホスト名部分にlocalhostを指定しています。これは同一サーバ上にあるMySQLからmysqldumpでバックアップを取得する前提です。バックアップを実行する端末とMySQLが配置されているサーバが異なる場合は、ホスト名(上記ではlocalhost) の部分をバックアップ端末のIPアドレスにするか'%'を指定します。