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アドレスにするか'%'を指定します。