Mysqldump: Получил ошибку: 1449:
mysqldump: получена ошибка: 1449: Пользователь, указанный как определитель ('root' @'192.200.1.16'), не существует при использовании LOCK TABLES
любезно дать решение выше ошибки.
Ответы
Ответ 1
Лучше использовать первый mysqldump с --single-transaction
, например:
mysqldump --single-transaction -u root -p mydb > mydb.sql
Если выше не работает, попробуйте ниже одного.
Вы должны заменить определитель для этих процедур/методов, а затем вы можете создать дамп без ошибок.
Вы можете сделать это следующим образом:
UPDATE 'mysql'.'proc' p SET definer = '[email protected]' WHERE definer='[email protected]'
Ответ 2
Я столкнулся с той же проблемой после того, как скопировал все представления и таблицы с другого хоста.
Это сработало после того, как я использовал этот запрос для изменения всех определителей в моей базе данных.
SELECT CONCAT("ALTER DEFINER='youruser'@'host' VIEW ",
table_name,
" AS ",
view_definition, ";")
FROM information_schema.views
WHERE table_schema='your-database-name';
Ответ 3
У меня была аналогичная проблема, проблема заключалась в том, что вы хотели перенести базу данных из одного экземпляра в другой, но в дампе также были процедуры, относящиеся к другим базам данных, поэтому я отметил эту ошибку и исправил ее, изменив процедуры или не удалив некоторые из них.
Ответ 4
попробуйте следующее:
mysqldump -h hostname -u thomas -p -x dbname > xxx_2015_03_25.sql