Estoy tratando de usar mysqldump para exportar una base de datos que necesita ser importada usando un nombre de base de datos diferente. Al observar el SQL generado por mysqldump, parece que los desencadenadores son los únicos nombres de objeto que están completamente calificados con el nombre de la base de datos de origen frustrando así mis necesidades. ¿Hay alguna forma de indicar a mysqldump que no califique completamente los nombres de los objetos, incluidos los disparadores?mysqldump Califica completamente los disparadores con el nombre de la base de datos
Respuesta
Tuve el mismo problema y encontré la solución. Estaba usando MySQL Workbench para diseñar mi base de datos y he creado algunos desencadenantes allí. Todos ellos usaron la sintaxis CREATE TRIGGER trigger_name
a excepción de uno: CREATE TRIGGER dbname.trigger_name
(fue solo mi error). La salida de Mysqldump incluía todos los desencadenantes de la misma manera: solo uno tenía el nombre de la base de datos.
Mysqldump usa las instrucciones originales CREATE TRIGGER
que se pueden ver a través de SHOW CREATE TRIGGER
. Si tiene un disparador definido con un nombre de base de datos, simplemente reemplácelo (suelte y cree) con uno sin nombre de base de datos.
Lo más probable es que agregue el nombre de la base de datos cuando crea el activador. Intente actualizar su activador sin el nombre de la base de datos.
Ha pasado un tiempo desde que tuve que lidiar con esto, pero estoy bastante seguro de que el problema no se debía a la creación de desencadenadores utilizando el nombre de base de datos completo: mysqldump generaría el guión de creación de desencadenantes con nombre de base de datos totalmente calificado independientemente de cómo los haya creado. –
No es una solución ideal, pero el bombeo de la salida a través de lo siguiente ha eliminado el nombre de la base de datos en los factores desencadenantes para mí.
mysqldump ... opts ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'
- 1. mysqldump base de datos parcial
- 2. Uso de mysqldump y usuarios de la base de datos
- 3. Disparadores de bases de datos
- 4. copia de seguridad de la base de datos mysql con mysqldump
- 5. Copiar/duplicar base de datos sin usar mysqldump
- 6. Dividir un archivo mysqldump con varias bases de datos, por base de datos
- 7. El comando Django: flush no borra completamente la base de datos, el restablecimiento falla
- 8. ignora una tabla con mysqldump?
- 9. nombre de la base de datos variable
- 10. restaurando con mysqldump, pero ¿dónde están los datos?
- 11. problema con conseguir los datos de la base de datos
- 12. Android cambiar el nombre de la base de datos SQLite
- 13. Pregunta de Mysqldump
- 14. Buscar todos los objetos de base de datos por nombre?
- 15. ¿Una solución de base de datos completamente administrada?
- 16. cambiar el nombre de la base de datos - mysql
- 17. mysqldump no creando la sintaxis de la base de datos de creación
- 18. ¿Cómo restauro una base de datos de un mysqldump que contiene múltiples bases de datos?
- 19. Cambiar el nombre de los nombres de las columnas en la base de datos postgresql
- 20. Obtener la lista de todos los usuarios de la base de datos con el rol especificado
- 21. ¿GRANTs mínimos necesarios para mysqldump para volcar un esquema completo? (Disparadores faltan !!)
- 22. ¿Limitar el número de registros de mysqldump?
- 23. toda la estructura, pero sólo los datos mysqldump de las tablas seleccionadas en un solo comando
- 24. Nombre de base de datos MySQL predeterminado
- 25. Creación de un tampón con el mismo nombre que la tabla de base de datos
- 26. Cambiar el nombre de una base de datos SQL
- 27. Entity Framework 4.3 primer nombre de la base de datos
- 28. Cómo hacer una copia de seguridad y restaurar la base de datos ORACLE 11g Como la base de datos SQL2005
- 29. ¿Cómo asegurar la replicación de MySQL? ¿El esclavo está completamente sincronizado con el MASTER de replicación?
- 30. Copia de datos relacionales de la base de datos a la base de datos
No estaré verificando esto (han pasado más de dos años desde que lo necesité, y no lo necesitaré en un futuro previsible), pero esto parece una solución plausible y práctica, así que estoy marcando ¡como la respuesta! Gracias por compartir. –
Ja, veo que @emre en realidad sugirió esta solución hace más de un año y yo lo maté. No obstante, su era una sospecha y la tuya es una insistencia, así que te dejaré con la respuesta marcada. Ciertamente, si alguno encuentra evidencia de lo contrario, lo consideraremos entonces. Por ahora, creo que hay una buena posibilidad de que su asesoramiento ayude a otros. –
bueno, acabo de probarlo, porque tuve el mismo problema. Si es importante, mi versión del servidor MySQL es 5.5.29-0ubuntu0.12.04.1 – ducin