mysqldump error LOCK TABLES

9

Когда я выполняю mysqldump, я получаю следующую ошибку:

mysqldump -u root -ppassword --databases information_schema > test.sql
mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES

Как я могу это исправить?

Том
источник
Зависит от вашего хранилища. См .: stackoverflow.com/questions/104612/…
JasonWoof

Ответы:

7

Если вам нужно вывести базу данных information_schema, добавьте в нее --skip-lock-tables.

mysqldump по умолчанию не создает дамп базы данных INFORMATION_SCHEMA. Начиная с MySQL 5.1.38, mysqldump создает дамп INFORMATION_SCHEMA, если вы явно указываете его в командной строке, хотя в настоящее время вы также должны использовать опцию --skip-lock-tables. До 5.1.38 mysqldump молча игнорирует INFORMATION_SCHEMA, даже если вы явно указываете его в командной строке.

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


источник
В InnoDB используйте параметр --single
-action
3

Мне пришлось добавить --single -action

Согласно руководству по MySQL, эта опция гарантирует только непротиворечивое резервное копирование, если вы используете InnoDB или BDB. В отличие от MyISAM и Heap они поддерживают транзакции.

Том
источник
0

У меня вчера такая же проблема.

База данных была перенесена с другого сервера, и когда мы удалили несколько пользователей, был VIEW, в котором отсутствовал DEFINER и который вызвал проблему.

Он не показывает ошибку пропппера, когда он был выгружен с привилегией пользователя SELECT, LOCK TABLES, но под пользователем root была показана правильная ошибка.

Якуб Пинкас
источник