information_schemaのmysqldumpがうまくいかない

先日MySQLを5.0から5.1にバージョンアップしました。
出てることに気づいてなかったんです。
別にあげなくても困らないんですけど、なんとなくあたらしもの好きということで。
5.5はdebianだとexperimentalだったのでやめました。

で、まあ、5.1にしたらちょいちょい問題が出たんですけど、まあエラーログ眺めてなんとかしたんですよ。
skip-bdbオプションあったらうごかないとか。(たぶん削除されたんでしょう)
default-character-setがdeprecatedになってcharacter_set_server使えとか。

そんなこんなでとりあえずうごかしはじめて問題なさそうだったので数日、ふとroot宛てのメールを見ると日々cronで回しているmysqlのバックアップさんからエラー通知。

mysqldump: Got error: 1044: _桼____ ‘root’@’localhost’ __ ‘information_schema’ _ǡ____١____ؤΥ____________ݤ__ޤ_ when using LOCK TABLES

なんか化け化けですけど、とりあえずエラーコード1044ってことでいいすかね。

でまあ、ぐぐってみたら結構でてくる。
正しいエラーメッセージはこうらしい。

mysqldump: Got error: 1044: Access denied for user ‘root’@’localhost’ to database ‘information_schema’ when using LOCK TABLES

権限が無いといっているようにみえる。
rootなんですけど。。。

んで、解決策としては、mysqldumpのオプションに、–single-transactionをつければいいらしい。
LOCK TABLES権限をユーザに与えてもいいって書いてるところもあるんだけど、rootでやってるから全権限あるんすよね。
一応権限確認したら all on *.* だったし。
ということで、試してみたらいけた。

mysqldump –add-drop-database –add-drop-table -e –add-locks –quick –quote-names -u root –password=XXXXXXXXXX –single-transaction information_schema > /backup/information_schema.sql

みたいな感じで。
rootにgrantはしっぱいした。
ほかのユーザならうまくいくのかもね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>