automysqlbackupのcron.dailyスクリプトを停止する方法 - インストールと設定後apt-get install automysqlbackup
- 次のエラーが発生しました:
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'debian-sys-maint'@'localhost' for table 'cond_instances' when using LOCK TABLES
これはMySQL 5.5にアップグレードした後に発生し、Ubuntu 12.04 LTSにアップグレードしたときに発生する副作用です。
正しい解決策(対応するバグレポートへのポインタを提供した@sr_のおかげで)は、mysqldumpから "performance_schema"データベースを除外することです。
だから質問は:Debianパッケージと設定を尊重しながらこれを行う方法は?
MySQL 5.5にアップグレードした後、この問題は毎日発生します。
背景: 私の目標は、Ubuntu Debianインストールのパッケージと設定を可能な標準的な方法で保存することです。ただし、実際にはこれはパッケージのインストール/アップグレード方式のバグであるため、提供されている構成ファイルのいずれかを更新する必要があります。
debian-sys-maint
とにかく、最高の権限があるため、すでに各テーブルをダンプする前にロックするのに十分な権限があります。
混乱してもこう書かれて/usr/share/doc/automysqlbackup/README.Debian
います。
すべてのパラメータは、/etc/default/automysqlbackupファイルを編集することで設定できます。
/etc/default/automysqlbackup
/etc/mysql/debian.cnf
次の設定で mysqlbackup を呼び出します。
Debianスクリプトを自動的に生成します。触れないでください! 。
答え1
このソリューションはこの問題を解決しました。
~によるとこのバグレポートautomysqlbackupが "performance_schema"データベースのダンプを停止する必要があります。これは、/etc/default/automysqlbackup
次のように編集することで実現できます。
DBNAMESリストから「performance_schema」を削除するには、grepステップにパイプを追加してください。
したがって、開始行DBNAMES=
と| grep -v ^mysql$
挿入後
| grep -v ^performance_schema$
今後| tr \\\r\\\n ,\
ありがとう、Jerome Drouetに行ったことがありますか?
このソリューションはUbuntu 12.04のautomysqlbackup Debianバージョン用です。 「performance_schema」データベースを除外する構文は、Linuxディストリビューションによって異なります。以下の@statを参照してください。
答え2
編集:私が言ったことをすべて忘れました。
バラよりこのバグレポート。たぶんコメント#2で言及されているように、「mysqldumpから 'performance_schema'データベースを除外する」方法を見つけたかもしれません。それ以外の場合、バグレポートのポスターはパラメータをautomysqlbackup
追加するためにスクリプトを編集しましたが、--skip-lock-tables
私の考えではこれがあなたに害を及ぼす可能性があると思います(下記参照)。示す)。
短い答え:そうかもしれません考えるロックします。
私の考えではロックしない役に立たないバックアップを提供できるため(テーブルが変更されたときなど)、必要なものではありません。バックアップ中---これは何ですか?ロックする予防できるものはありますか?
このポイントについて読むまたブロック項目ユーザーに付与されたコンテンツ'autobackup'@'localhost'
へのアクセスに関する言及ロックテーブル。
つまり、エラーメッセージは、問題の「ユーザー」が実際であることを示します'debian-sys-maint'@'localhost'
。 だから私の考えでは必須権限を付与するとこれユーザーまたはバックアップスクリプトの資格情報の変更automysqlbackup.conf
(これはDebianで可能です。およびに/etc/default/automysqlbackup
お問い合わせください。)それで大丈夫でしょう。man automysqlbackup
/usr/share/doc/automysqlbackup/README.Debian
編集する
~からこのマニュアル引用したら--lock-tables
どうすればいいですか?
--lock-tables, -l
ダンプされた各データベースに対してダンプする前に、ダンプするすべてのテーブルをロックします。
--skip-lock-tables
これはマニュアルで唯一発生することに関連している--skip-lock-tables
ためmysqldump
テーブルをダンプしてもテーブルはロックされません。。上記のように、これは望ましくありません。私の考えではこれと関係があると思います。ダンプロックテーブルしかし、一緒にロックテーブル。
しかし、あなたが言ったように、問題のユーザーがこれを行うことができなければならないので、なぜそれがうまくいかないのかわかりません。
答え3
私は誤って解決策1を見ましたが、Debianでは動作します。
この行を次のように変更して、
/etc/default/automysqlbackup
この問題を「一時的に」解決することができました。
CONFIG_db_exclude=( 'information_schema' 'performance_schema' )
これがどのような影響を与えるかはわかりませんが、テストの復元は効果があり、バックアップはエラーなしで完了しました。
Debian sidの私の解決策は最後のアップデート以降失敗しましたが、解決策1(以前は機能していませんでした)が機能しました。これはgrep /etc/default/automysqlbackupです。 grep -v ^Performance Mode$行を追加します。上記は、以前ダンプで無視されているように見えることを除外しました。