ほとんどのバックアップ操作では、mysqlbackup コマンドは、--user
オプションと --password
オプションを通じて MySQL Server に接続します。このユーザーは特定の権限を必要とします。最低限の権限セットを持つ新しいユーザーを作成するか、ルートユーザーなどの管理アカウントを使用することができます。
mysqlbackup が接続する MySQL ユーザーの最低限の権限は次のとおりです。
すべてのデータベースおよびテーブルに対する
RELOAD
。mysql.backup_progress
テーブルとmysql.backup_history
テーブルに対するCREATE
、INSERT
、DROP
、およびUPDATE
と、さらにmysql.backup_history
に対するSELECT
。ロギングを有効および無効にする場合と、データベース処理の中断を最小限に抑えるためにロックを最適化する場合の
SUPER
。バックアップで格納される binlog の位置を取得する場合の
REPLICATION CLIENT
。
ローカルホストから接続している MySQL ユーザー (この例では mysqlbackup
) に対してこれらの権限を設定するには、mysql
クライアントプログラムから次のようなステートメントを発行します。
GRANT RELOAD ON *.* TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history TO 'mysqlbackup'@'localhost';
GRANT REPLICATION CLIENT ON *.* TO 'mysqlbackup'@'localhost';
GRANT SUPER ON *.* TO 'mysqlbackup'@'localhost';
FLUSH PRIVILEGES;
トランスポータブルテーブルスペース (TTS) を使用して InnoDB テーブルをバックアップおよびリストアするには、次の追加権限が必要です。
テーブルをバックアップするための LOCK TABLES および SELECT
テーブルをリストアするための CREATE および ALTER
これらの権限を設定するには、mysql
クライアントプログラムから次のようなステートメントを発行します。
GRANT LOCK TABLES, SELECT, CREATE, ALTER ON *.* TO 'mysqlbackup'@'localhost';
FLUSH PRIVILEGES;