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