mysqldumpを使用してバックアップ目的で読み取り専用のMySQLユーザーを作成するにはどうすればよいですか?


13

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

私は間違っていますか?読み取り専用ユーザーに追加の許可が必要ですか?またはrootinformation_schemaテーブルのみをロックできますか?どうしたの?

編集:

GAHで動作するようになりました。FLUSH PRIVILEGESを以前に実行したことがない場合があります。

余談ですが、これはどのくらいの頻度で自動的に発生しますか?

編集:

いいえ、機能しません。mysqldump -u username -p --all-databases > dump.sql手動で実行してもエラーは生成されませんが、information_schemaはダンプされません。automysqlbackupエラーが発生します。


エラーmysqldump:マニュアルページから:mysqldumpはINFORMATION_SCHEMAデータベースをダンプしません。コマンドラインでそのデータベースに明示的に名前を付けると、mysqldumpは黙ってそれを無視します。manページが古くなっている(および警告を発している)automysqlbackupか、ダンプの追加チェックを行っているようですinformation_schema。どちらであるかはわかりませんが、ユーザーの許可とは関係ありません。
stickmangumby

1
GRANTの問題ではありません。INFORMATION_SCHEMAをバックアップする必要はありません(dev.mysql.com/doc/refman/5.0/en/information-schema.htmlを参照)
SmallClanger

1
SmallClangerの発言に加えて、INFORMATION_SCHEMAは仮想データベースであり、MySQLを再起動するたびに再構築されるため、とにかく復元できないため、バックアップする意味はありません。
ジョンガーデニアス

回答:


4

これらの権限は、mysqldumpに必要なすべてのものである必要があります。

LOCK TABLESを許可しており、LOCK TABLESでエラーが発生しているため、パーミッションが一貫していないようです。を実行しましたFLUSH PRIVILEGESか?


1

おっと...のmanページからmysqldump

mysqldump does not dump the INFORMATION_SCHEMA database. If you name that database explicitly on the command line, mysqldump silently ignores it

マニュアルページが古くなっている(および警告を発している)automysqlbackupか、ダンプの追加チェックを実行しているようですinformation_schema

どちらであるかはわかりませんが、ユーザーの許可とは関係ありません。

編集

はい、それはautomysqlbackupバージョン2.5.1のバグです(Ubuntu 10.04でMySQL 5.1.41を使用)-バックアップinformation_schemaすべきでないときにバックアップを試みます。

修正:スクリプトの行76に追加information_schemaDBEXCLUDEます。


GRANTの問題ではありません。INFORMATION_SCHEMAをバックアップする必要はありません(dev.mysql.com/doc/refman/5.0/en/information-schema.htmlを参照)
SmallClanger

SmallClangerの発言に加えて、INFORMATION_SCHEMAは仮想データベースであり、MySQLを再起動するたびに再構築されるため、とにかく復元できないため、バックアップする意味はありません。
ジョンガーデニアス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.