Foros del Web » Programando para Internet » PHP »

Dump DB

Estas en el tema de Dump DB en el foro de PHP en Foros del Web. Buenas tardes. Espero me puedan ayudar con estas 2 consultas: 1.- ERROR INSERT INTO Con el archivo que adjunto (lo pego al final) exporto mi ...
  #1 (permalink)  
Antiguo 01/03/2016, 13:36
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Dump DB

Buenas tardes.
Espero me puedan ayudar con estas 2 consultas:

1.- ERROR INSERT INTO
Con el archivo que adjunto (lo pego al final) exporto mi base de datos, cuando trato de importarlo a mi phpMyAdmin 4.3.8 me sale el siente mensaje de error:

Error en la linea de 838511: INSERT INTO jos_finder_terms VALUES('26', 'a dise�ar se', 'a dise�ar se', '0', '1', '1.4', 'A3262', '3', 'es');
Consulta: INSERT INTO jos_finder_terms VALUES('26', 'a diseñar se', 'a diseñar se', '0', '1', '1.4', 'A3262', '3', 'es')
MySQL: Duplicate entry 'a dise' for key 'idx_term'

¿Qué es lo que tiene mal el archivo que exporta la DB con dicho error?.

2.- ¿Por qué no se muestra el avance del trabajo?

Muchas gracias por su ayuda.
Que tengan un buen día.

------------------------------------------------------------------------------------------------------

Es el archivo con nombre: dump_db.php
Lo pueden descargar en: [URL="https://mega.co.nz/#!xhBn2CjI!TjUpdL3vPoRcwUSPchN5dWLki3e9wMMUYOh6KV6 Cen8"]https://mega.co.nz/#!xhBn2CjI!TjUpdL3vPoRcwUSPchN5dWLki3e9wMMUYOh6KV6 Cen8[/URL]
  #2 (permalink)  
Antiguo 01/03/2016, 15:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Dump DB

Cita:
¿Qué es lo que tiene mal el archivo que exporta la DB con dicho error?.
El charset...
phpMyadmin espera recibir un archivo plano en el charset UTF-8, y aparentemente está recibiendo algo que está o en LATIN1, o bien en UNICODE. Ninguno de los dos es el que corresponde.
Usualmente es algún paso al manejar el dump, o bien un defecto de configuración en el FTP del servidor donde se lo intenta subir.
Ya han consultado recientemente por un problema parecido, y al final lo resolvieron en el foro de WebServers, ya que era un tema de configuración del servidor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/03/2016, 19:30
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Dump DB

Hola,
Gracias por tu respuesta.
¿No tiene que ver con INSERT INTO?
  #4 (permalink)  
Antiguo 01/03/2016, 19:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Dump DB

¿Entendiste lo que dije del CHARSET?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/03/2016, 22:58
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Respuesta: Dump DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
El charset...
phpMyadmin espera recibir un archivo plano en el charset UTF-8, y aparentemente está recibiendo algo que está o en LATIN1, o bien en UNICODE. Ninguno de los dos es el que corresponde.
Usualmente es algún paso al manejar el dump, o bien un defecto de configuración en el FTP del servidor donde se lo intenta subir.
Ya han consultado recientemente por un problema parecido, y al final lo resolvieron en el foro de WebServers, ya que era un tema de configuración del servidor.

Hola.
¿Cómo podría agregar lo referente al charset='utf8' en el archivo dump_db.php?
Gracias por tu respuesta.
  #6 (permalink)  
Antiguo 02/03/2016, 04:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Dump DB

No es algo que puedas "agregar" exactamente. Es el modo que se https://es.wikipedia.org/wiki/Codifi..._de_caracteres, ya que entenderás que las letras, los caracteres, no existen en realidad en la computadora. Son códigos binarios que luego se traducen para ser visualizados.
El problema lo veo por este lado:
Cita:
INSERT INTO jos_finder_terms VALUES('26', 'a dise�ar se', 'a dise�ar se', '0', '1', '1.4', 'A3262', '3', 'es');
Esos símbolos suelen aparecer solamente si el charset que llega la base es diferente al que espera, cosa que puede pasar si usa UNICODE o LATIN1, dado que la base no espera eso.
Si ese es el problema, y el archivo origen no ha sido editado o modificado luego de realizarse el backup, usualmente es un problema de configuración en el FTP. Y eso no lo vas a corregir simplemente agregando o sacando cosas del archivo.
¿Ese bloque aparece así en pantalla, o es algo que copiaste tu?

Ahora bien, yendo al mensaje de error que recibes, es posible que haya otro problema diferente:

Cita:
MySQL: Duplicate entry 'a dise' for key 'idx_term'
Esto otro es puntualmente un problema del backup.
Normalmente un backup no debería generar ese mensaje, si la restauración incluye la creacion misma de la base. Pero es un mensaje habitual cuando lo que está haciendo es una restauración de DATOS sobre una base que ya los tiene.
Es muy común que las tablas tengan campos ID autoincrementales, y que estos sean la PK, especialmente en MyQSL. No es una buena practica, pero es lo que suelen hacer.
El problema es que un campo AI, cuando la tabla ya tiene datos, ya tiene ciertos registros con el valor de ID, y si intentas hacer una restauración de datos desde un archivo, y la base origen de ese archivo contiene todos los ID iniciales, es muy habitual que estés intentando agregar registros a una tabla con un valor de ID que esa base ya tiene en esa tabla.
Si recuerdas, una PK debe ser única, y por tanto si intentas insertar un registro con un numero que ya existe en esa tabla se disparará un error de clave duplicada... que es lo que te está pasando.

¿Se entiende?

Nota Bene: Todo esto es OFF TOPIC en el foro de PHP. Es un problema puramente de MySQL, y deberías haber posteado la pregunta en ese foro...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 02/03/2016, 09:28
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Respuesta: Dump DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No es algo que puedas "agregar" exactamente. Es el modo que se [url]https://es.wikipedia.org/wiki/Codificaci%C3%B3n_de_caracteres[/url], ya que entenderás que las letras, los caracteres, no existen en realidad en la computadora. Son códigos binarios que luego se traducen para ser visualizados.
El problema lo veo por este lado:
Esos símbolos suelen aparecer solamente si el charset que llega la base es diferente al que espera, cosa que puede pasar si usa UNICODE o LATIN1, dado que la base no espera eso.
Si ese es el problema, y el archivo origen no ha sido editado o modificado luego de realizarse el backup, usualmente es un problema de configuración en el FTP. Y eso no lo vas a corregir simplemente agregando o sacando cosas del archivo.
¿Ese bloque aparece así en pantalla, o es algo que copiaste tu?
Hola.
Ese bloque aparece así en pantalla.
Tal vez sea por esta codificación que tiene el archivo: header('Content-Type: text/html; charset=iso-8859-1');


Cita:
Iniciado por gnzsoloyo Ver Mensaje
Ahora bien, yendo al mensaje de error que recibes, es posible que haya otro problema diferente:

Esto otro es puntualmente un problema del backup.
Normalmente un backup no debería generar ese mensaje, si la restauración incluye la creacion misma de la base. Pero es un mensaje habitual cuando lo que está haciendo es una restauración de DATOS sobre una base que ya los tiene.
Es muy común que las tablas tengan campos ID autoincrementales, y que estos sean la PK, especialmente en MyQSL. No es una buena practica, pero es lo que suelen hacer.
El problema es que un campo AI, cuando la tabla ya tiene datos, ya tiene ciertos registros con el valor de ID, y si intentas hacer una restauración de datos desde un archivo, y la base origen de ese archivo contiene todos los ID iniciales, es muy habitual que estés intentando agregar registros a una tabla con un valor de ID que esa base ya tiene en esa tabla.
La importación lo hice en una DB vacía.
Muchas gracias por tu respuesta.
  #8 (permalink)  
Antiguo 02/03/2016, 20:13
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Dump DB

Hola gnzsoloyo,
Ya se solucionó.
El archivo estaba bien, en la tabla jos_finder_terms de la BD borré las entradas duplicadas y se solucionó el problema.
Ahora ¿por qué había entradas duplicadas? eso si no se...
Le cambié la codificación a UTF-8 y ya no salen esos caracteres extraños.
Muchas gracias.

Etiquetas: dump, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:03.