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
。どちらであるかはわかりませんが、ユーザーの許可とは関係ありません。