automysqlbackupスクリプトを使用してmysqlデータベースをダンプしていますが、ルートデータベースパスワードをプレーンテキストファイルに保存しないように、読み取り専用ユーザーにこれを実行させたいと思います。
次のようなユーザーを作成しました。
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
mysqldump(スルーautomysqlbackupまたは直接)実行すると、次の警告が表示されます。
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
私は間違っていますか?読み取り専用ユーザーに追加の許可が必要ですか?またはroot、information_schemaテーブルのみをロックできますか?どうしたの?
編集:
GAHで動作するようになりました。FLUSH PRIVILEGESを以前に実行したことがない場合があります。
余談ですが、これはどのくらいの頻度で自動的に発生しますか?
編集:
いいえ、機能しません。mysqldump -u username -p --all-databases > dump.sql手動で実行してもエラーは生成されませんが、information_schemaはダンプされません。automysqlbackupエラーが発生します。
mysqldump:マニュアルページから:mysqldumpはINFORMATION_SCHEMAデータベースをダンプしません。コマンドラインでそのデータベースに明示的に名前を付けると、mysqldumpは黙ってそれを無視します。manページが古くなっている(および警告を発している)automysqlbackupか、ダンプの追加チェックを行っているようですinformation_schema。どちらであるかはわかりませんが、ユーザーの許可とは関係ありません。