Foros del Web » Programando para Internet » PHP »

Error al introducir archivos en la base datos

Estas en el tema de Error al introducir archivos en la base datos en el foro de PHP en Foros del Web. Estoy siguiendo el tutorial para introducir un gran .sql mediante bigdump de forosdelweb, esta base de datos es tan grande porque los archos en vez ...
  #1 (permalink)  
Antiguo 25/10/2006, 11:39
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Error al introducir archivos en la base datos

Estoy siguiendo el tutorial para introducir un gran .sql mediante bigdump de forosdelweb, esta base de datos es tan grande porque los archos en vez de guardarlos en directorios la almacena en la base de datos total que entras ocasiones no habia tenido problemas con bigdump pero ahora cuando llega la hora de introducir la tabla de los archivos me sale este error:

Error at the line 5099: INSERT INTO `attachment` VALUES (83, 142, 1147489977, 'cam corder.zip',

[muchisos caracteres extraños]

MySQL: Got a packet bigger than 'max_allowed_packet' bytes

Stopped on error


¿que puedo hacer?

saludos
  #2 (permalink)  
Antiguo 25/10/2006, 11:55
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
ahora he probado con otra versi0on del bigdump y me dice exactamente igual el error en el mismo archivo pero al final me especfica un poco mas:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 4547714 bytes) in /home/s03dd/public_html/bigdump.php on line 550
  #3 (permalink)  
Antiguo 25/10/2006, 15:50
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
existe alguna opcion en el phpmyadmin que elimine estos datos malos?
  #4 (permalink)  
Antiguo 25/10/2006, 16:14
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Creo que el problema radica en que se estan corrompiendo los datos, haceis algun tipo de compresion de la base de datos al exportarla o algo asi, probad a exportarla sin comprimir.
  #5 (permalink)  
Antiguo 26/10/2006, 06:57
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
si el servidor donde tengo ahora los archivos solo me da la posibilidad de crearme una copia de mi base de datos en un tar.gz2 la descomprimo localmanente en mi servidor mysql de windows y genero el .sql y este es el que intento pasar al nuevo servidor, solo me falla en esa tabla las demas del foro si las mete bien, esos archivos guardados en la base datos la mayoria estan comprimidos en .rar o .zip o son fotos
  #6 (permalink)  
Antiguo 26/10/2006, 14:43
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
alguna otra sugerencia?
  #7 (permalink)  
Antiguo 27/10/2006, 17:29
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
he borrado ese archivo y ahora me sale otro... no se que hacer ya, mi servidor no tiene ssh cpanel tiene alguna otra opcion?

saludos
  #8 (permalink)  
Antiguo 28/10/2006, 21:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Realmente lo que tienes problemas son con el tamaño de tus datos.

PHP cuando pasa por el "datos" como tus .sql que procesas .. asigna su memoria e impone límite (por configuración que NO puedes cambiar tú) .. concretamente unos 8 Megabytes de RAM se le dá por defecto a cada script para su ejecución .. en tu caso lo sobrepasas exactamente de lo que tiene ese servidor configurado en 4547714 bytes .. Como no eres el "dueño" de tu servidor .. o conversas el tema con tu proveedor ... o te olvidas del tema.

Esos son los problemas de gestionar gran cantidad de datos en forma "binaria" sobre BBDD. (uno de sus "contras" .. sobre todo cuando uno no tiene acceso a la configuración del servidor para hacer algunos ajustes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 29/10/2006, 03:55
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
yo desde mi servidor local he podido volcarla perfectamente, tengo phpmyadmin instalado, ¿como podria borrar de la base de datoso todos esos archivos que sobrepasan esos bytes? los archivos no me importan tanto me gustaria conservar aunque sea las fotos los avatar y demas que si que conserva en esa misma tabla

saludos
  #10 (permalink)  
Antiguo 29/10/2006, 19:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
yo desde mi servidor local he podido volcarla perfectamente, tengo phpmyadmin instalado, ¿como podria borrar de la base de datoso todos esos archivos que sobrepasan esos bytes? los archivos no me importan tanto me gustaria conservar aunque sea las fotos los avatar y demas que si que conserva en esa misma tabla

saludos
Supongo que en un campo de tu BBDD te guardas el tamaño del archivo en bytes? .. O no?

bueno .. se trataría de hacer alguna consulta SQL en base a ese dato para borrar o hacer un "NULL" a esos datos que sobrepasan cierto tamaño ..

Pero .. OJO, no se trata de que "UN" registro/campo sobrepase tal tamaño .. sino el total que estás procesando acomulado sobrepasa ese total .. Así que ahí tendrás que ver bajo que criterio borras registros...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 31/10/2006, 01:16
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Pero el error me sale bajo un archivo especifico, eso significa que el problema es un de un archivo/tabla no? o me quieres decir que ya no solo falta con borrar los archivos que sobre pasen ese tamaño?

saludos
  #12 (permalink)  
Antiguo 31/10/2006, 01:19
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
respecto al tamaño de las celdas que contine cada archivo no lo se, no hay forma de que php me de esa informacion de cada archivo?

saludos
  #13 (permalink)  
Antiguo 31/10/2006, 05:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
respecto al tamaño de las celdas que contine cada archivo no lo se, no hay forma de que php me de esa informacion de cada archivo?

saludos
Realmente no te entiendo cuando hablas de "archivo" .. Si tu almacenas tu información en tu BBDD en forma "binaria" (esas imagenes y demás) .. en ese caso habla de "campos" y "tablas" .. de cual te dá problema o a que "registro" se plantea el problema y ahí veras el "campo".

Sobre tamaños y demás de tablas/campos de una BBDD .. tienes SQL para tal fin

funciones SHOW xxxx de Mysql:
http://dev.mysql.com/doc/refman/5.0/en/show.html

Estas funciones las ejecutas con mysql_query() y obtienes sus resultados como una consulta SQL normal.

De hecho todo esto lo hace phpMyadmin o cualquier GUI para Msyql que uses. Sobre todo la información del peso en dato de las tablas en forma individual y otros detalles.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 31/10/2006, 08:16
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
pues no se como borrar esos campos que sobrepasan de dicha memoria, no existe algun forma de saltar ese error de tamaño, me explico que lo ignore, se salte esa tabla y pase a la siguiente? el bigdump se corta cuando se encuentra con ese error si lo ignorase simplemente seria lo idoneo
  #15 (permalink)  
Antiguo 31/10/2006, 10:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
pues no se como borrar esos campos que sobrepasan de dicha memoria, no existe algun forma de saltar ese error de tamaño, me explico que lo ignore, se salte esa tabla y pase a la siguiente? el bigdump se corta cuando se encuentra con ese error si lo ignorase simplemente seria lo idoneo
El problema está por qué el código que usas no hace ninguna validación sobre el "tamaño" que va a generar antes de ejecutarlo . y por eso es PHP el que "revienta" con ese mensaje de error.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 31/10/2006, 15:14
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
entonces que programa podria utilizar?, phpmyadmin solo soporta 50mb y ocupara unos 200 megas, el bigdum es que utiliza en tutorial de forosdelweb para volcar grandes .sql pero no es capaz de verificar el tamaño que tiene el servidor fijado y de las tablas
  #17 (permalink)  
Antiguo 31/10/2006, 18:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
entonces que programa podria utilizar?, phpmyadmin solo soporta 50mb y ocupara unos 200 megas, el bigdum es que utiliza en tutorial de forosdelweb para volcar grandes .sql pero no es capaz de verificar el tamaño que tiene el servidor fijado y de las tablas
Yo realmente no uso "phpMyadmin" ni aplicaciones GUI para Mysql en forma de "script" o aplicación en PHP. Suelo usar Navicat (para windows) .. eso sí, tengo acceso remoto permitido a mis Base de datos.

Este tipo de GUI's "software" suelen tener menos problemas sobre la cantidad de datos que puedan manejar (una vez que Mysql en sí por sus características lo aguante).

También podrías usar la "consola" de Mysql (accediendo por Shell (SSH/Telnet)) ... Realmente no sé en que condiciones estás (si usas tus servidores própios o servicios de hosting o qué ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #18 (permalink)  
Antiguo 01/11/2006, 12:55
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
es un hosting simplemente con cpanel ojala tuviese ssh o acceso remoto...
  #19 (permalink)  
Antiguo 02/11/2006, 05:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
es un hosting simplemente con cpanel ojala tuviese ssh o acceso remoto...
Pues en ese caso .. contacta con tu proveedor.

Realmente no eres el primero que tiene problemas así .. es decir, que tienen que respaldar sus BBDD y no tienen forma de "sacarla" del servidor.

Creo que ese "trabajo" debería resolverlo tu proveedor y más si no te dá soporte para que tu te lo hagas (por SSH por ejemplo .. harías un "dump" por consola y luego el archivo generando en el servidor te lo bajas por SSH o por FTP ...)

Si hay "script" PHP que "parcele" los resultados o haga alguna "pirueta" con los datos para dejar archivos más manejables lo desconozco.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #20 (permalink)  
Antiguo 03/11/2006, 05:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Gracias Cluster pero veo que mi caso es imposible, solo se me ocurre configurar mi servdidor local como en el que pretendo meter la gran sql y conforme me va saliendo los errores de tal tabla grande la voy borrando.

Podrias decime que configuracion de mysql o php tendria que tocar en mi servidor de windows para que la base de datos local que tengo sacase ese mismo error?

saludos
  #21 (permalink)  
Antiguo 03/11/2006, 08:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa en tu servidor remoto haciendo un phpinfo() el valor de:

memory_limit

Y ese valor lo igualas en tu php.ini de tu servidor local.

Según veo en el manual de PHP .. dice sobre esa directiva de PHP que se puede alterar: "PHP_INI_ALL" .. esto es .. supuestamente con un:

ini_set('memory_limit','Xbytes');

Podrías ajustar ese valor en tu script PHP que necesita más tiempo de ejecución .. Pruebalo, pero .. normalmente está limitado la configuración de PHP para que no puedas alterar ese valor por ese médio.

http://www.php.net/manual/es/ini.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 05/11/2006, 07:04
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
entonces podria probar a añadir en la segunda linea del bigdum despues del <? añadir ese comando? Xbytes seria por ejemplo si quiero porner 16 megas: 16 o 160000000 ?

saludos
  #23 (permalink)  
Antiguo 05/11/2006, 07:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por escan_0 Ver Mensaje
entonces podria probar a añadir en la segunda linea del bigdum despues del <? añadir ese comando? Xbytes seria por ejemplo si quiero porner 16 megas: 16 o 160000000 ?

saludos
En el php.ini se usa n°M .. aunque también podrías ponerlo en bytes (sin "M" al final). Eso sí, .. 1 Megabyte son 1024 Kbytes y 1 Kbyte son 1024 bytes .. calculalo ..

Yo usaría simplemente:
16M

Y lo dicho .. esto no asegura que te fucione .. pero por probarlo no cuesta nada.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 10:18.