Cuando ejecuto mysqldump, aparece un error:
mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES
Esto tiene sentido porque foobares una máquina heredada que ya no existe.
¿Cómo cambio el definidor de todas mis tablas a 'root' @ 'localhost'?
mysql
mysqldump
permissions
kfmfe04
fuente
fuente

Respuestas:
Lo que creo es que la base de datos que está intentando volcar contiene procedimientos / métodos que fueron definidos por un usuario mientras estaba conectado como root @ 'foobar'.
Ahora la solución es que tienes que reemplazar el definidor para esos procedimientos / métodos
entonces puede generar el volcado sin el error.
puedes hacer esto como ...
Tenga cuidado, porque esto cambiará todos los definidores para todas las bases de datos.
Intentalo....!
ACTUALIZACIÓN el 9 de febrero de 2012
Como vi el enlace dado por @gbn que es una respuesta dada por @Rolando que también puede ser el caso. Por favor visite el enlace
EDITAR por @RolandoMySQLDBA 2011-12-16 11:20 EDT
Si bien es arriesgado, esta respuesta es buena. Solo para aclarar: puede especificar la base de datos en su consulta de esta manera:
fuente
UPDATEcambiado la mesa, peromysqldumpno verlo:mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES. Incluso después de reiniciarmysql. Estoy corriendomysql-5.5.31.update mysql.procenfoque de hecho funciona.Más fácil de usar el
--single-transactioninterruptor:fuente
La solución más rápida sería volver a crear el definidor para que exista, siempre que no cree ningún conflicto con los usuarios existentes.
CREATE USER 'root'@'foobar';fuente
Exporte todas las vistas de la base de datos
<DB>:o:
Edítelos
views.sqly vuelva a crearlos:Especifique
-uy-pcambie si es necesario.fuente