読者です 読者をやめる 読者になる 読者になる

MySQL: "when using LOCK TABLES" ⇒"--single-transaction"

mysql いまさらシリーズ

mysqlでmysqldump したとき

[foo@sv ]% mysqldump -u hoge -p fuga_db > fuga_db.sql
Enter password: 
mysqldump: Got error: 1044: Access denied for user 'hoge'@'localhost' to database 'fuga_db' when using LOCK TABLES

『LOCKできねーよ?』というエラーメッセージ。
ここでいうユーザ'hoge'が、対象データベース'fuga_db'で、LOCKの権限を持っていない事に起因する。
トランザクション処理の関係で中途半端なデータができちゃうからイヤ、という理由かと思われる。

LOCK権限をもったユーザでdumpするのがいいと思われるが、他にアカウントを知らんのじゃという場合もあるので、その時は
"--single-transaction" というオプションを。

[foo@sv ]% mysqldump -u hoge -p --single-transaction fuga_db > fuga_db.sql
Enter password: 


via.:http://php.tekmemo.com/?p=1388