Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problemas con una base de datos antigua

Estas en el tema de Problemas con una base de datos antigua en el foro de Mysql en Foros del Web. Buenos días... Hace unos 3 años, la empresa que hacía de servidor para mi web desapareció. Era un foro. Antes de que desaparecieran conseguí que ...
  #1 (permalink)  
Antiguo 05/09/2012, 04:05
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Problemas con una base de datos antigua

Buenos días...

Hace unos 3 años, la empresa que hacía de servidor para mi web desapareció. Era un foro. Antes de que desaparecieran conseguí que me dieran el ftp y pude rescatar lo que yo creo (y espero sea) la base de datos completa. Me viene en varios archivos sql. Con myphpadmin he conseguido montar los 17 archivos que contiene, menos el 4, que al tratar de ejecutarlo me dice lo siguiente:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Esta es la sintaxix, pero yo no entiendo mucho de esto y no sé dónde demonios está el error :S:S

-- phpMyAdmin SQL Dump
-- version 2.8.2.4
-- http://www.phpmyadmin.net
--
-- Servidor: localhost:3306
-- Tiempo de generación: 24-11-2010 a las 14:41:45
-- Versión del servidor: 5.0.26
-- Versión de PHP: 5.2.6
--
-- Base de datos: `alternativadial`
--

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

--
-- Estructura de tabla para la tabla `dial_bbranks`
--

DROP TABLE IF EXISTS `dial_bbranks`;
CREATE TABLE IF NOT EXISTS `dial_bbranks` (
`rank_id` smallint(5) unsigned NOT NULL auto_increment,
`rank_title` varchar(50) NOT NULL default '',
`rank_min` mediumint(8) NOT NULL default '0',
`rank_max` mediumint(8) NOT NULL default '0',
`rank_special` tinyint(1) default '0',
`rank_image` varchar(255) default NULL,
PRIMARY KEY (`rank_id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

Es la última que me queda para saber si pude o no rescatarla, me podéis ayudar con la sintaxis?
  #2 (permalink)  
Antiguo 05/09/2012, 09:19
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: Problemas con una base de datos antigua

Mira, técnicamente un backup de ese tipo no puede tener "errores de sintaxis", porque está generado por una herramienta propia de MySQL.
Pero pueden darse al menos dos circunstancias:
1) Que hayan abierto el archivo con un editor y luego lo hayan guardado sin verificar que lo debían grabar como UTF8, y no como ANSI o UNICODE. Como MySQL espera recibir UTF8, algunos caracteres extendidos pueden interpretarse mal y generar errores sintacticos que no son tales.
Habría que revisar con cuidado, usando un buen editor.
2) Que existan VIEW en algún caso, donde se hayan usado funciones o controladores de flujo (como CASE, por ejemplo), con o sin alias. He visto que estas VIEW, en versiones de MySQL anteriores a la 5.1.x, podrían quedar con errores al momento de generarse el backup.
__________________
¿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 05/09/2012, 11:10
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

Y la solución en el segundo caso? :S:S
  #4 (permalink)  
Antiguo 05/09/2012, 11:23
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: Problemas con una base de datos antigua

¡Uff!

Con mucha paciencia...
Hay que buscar un muy buen editor para ese archivo (puedes usar MySQL Qwery Browser o el Workbench, por ejemplo), e ir revisando el código, pagina a pagina...
Si hay errores en la VIEW, aparecerán como saltos indebidos en el script.
Si son fallas de alias, aparecerán como alias muuuuuy largos con el mismo contenido que las funciones aplicadas a las columnas.
Lo esencial es acordarse de grabar en UTF8.

Haz una prueba en una PC local, importando el script desde linea de comandos de Windows.
Como la ventana no se cierra, va mostrando las importaciones y en un momento se puede ver el mensaje de error un poco más claro. Eso ayuda a ver lo que hay que buscar cerca de ese error.
__________________
¿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 05/09/2012, 12:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

He intentado subirlo como lo bajé en su día, con el archivo comprimido en zip, sin descomprimirlo. Y éste es el error que me comunica:

Hay la posibilidad de que usted haya encontrado un error en el intérprete de SQL. Por favor examine cuidadosamente su consulta, y verifique que las comillas están siendo usadas adecuadamente y hacen juego. Otra posible causa del fallo es que usted este subiendo un archivo con datos binarios por fuera del área de texto delimitado. Intente su consulta en la interfaz de comandos de MySQL. La salida generada por el servidor de MySQL, de existir, aparece abajo, en cuyo caso puede ayudar a diagnosticar el problema. Si aún tiene problemas o el intérprete falla en tanto que en la interfaz de comandos funciona, por favor reduzca la salida de su consulta de SQL a la consulta que genera el problema, y envíe un reporte de error con la cadena de datos en la sección de CORTE indicada abajo:

----INICIO DEL CORTE----
eNo1kn9ME1ccwDHObOmWkBg3k23sbtFJovQOWhAtISfTBtyAFl A6A/bCtsqI1ZZCKWq5t2Rx/cNp
lyyumyZcsgQbnRtRt7EE7UUZduGCXdwMU4sna/ihtVfbUu6uvd5bMWny/nj5fr/v8/l+X7761lZD
qw7dXYHu1qCN+mYdqkG1aJW2WtW2Lx9fq1Ltbm/ToZv3fqpD+3qt9i5Hn8WBWXs+xuyf2csGUA2m
3Y5qysur8PId+ZO/6jQaXUUFarUc2YnqB+3oZlXTsbaWRh1ahZVjOyvUVlu3an9bK2 poK0Pr6vXN
+8rQdn1eZeo5iu7Vo9VYucrYVJfvA9uOVartVq3K2GBcLSkztK 1CtJhWXb2tr9dpsRy3VFSijT1H
nYOqxrrmeh1q6VM7+w+pd6heCI0frn1pQ1FR0StFHzgHa7d0Hb HXXP7np29njUX1Rs+a1QxJHrI5
bF1H+3u6nbZKksTyI/5x4/7V94K9avHO6A7b5uldmk2btFt6nbb+mm80tUaTkfx3ZFfVmqnM C153
f82a7LO6ssOv/XLph4YhE3gffuT3zrF99Hrnw8sd9V9/XrJzz+3HcxPJeUacZGlF9APFy4UDQJhg
TTBrI5VEiINPSlezDMeBQSFSjKfwMfIO07nkJyhZ9JPwqQlILE kdCy/nQOfSBVKxw4bTyyGTIECF
X4lkScYtRNLJWQTIzxMzvzaffhCgXFAxEIEwj8MBOKcojiEBQJ KQMxYz1TKFL1xsxH2+OIaYp5LR
Efn4gSfDYKQw0du+EteQkLyJBBRHZj58dx0Okxw8eW6B3B69Q3 QWysIX5wckMeLJ209IfCSXK/Z5
40rOccIl8R2BM0oIVzbCxdKVCyHC7YaL0SDBMH9lC6/NZmb8uvwkORxogNGO45Hq0dE4Tsg0sjwN
xSyXY9kZRvJwlJKcJG64FeBO3JshR16FfCmMCTRciIaCFlLho4 u+gPysFMe5uwxI8Ssx1hPHuSGB
93iJDqAkF5GC8Hp2DOGrAxJLyCtjuI8AcuK8i+jkOIaBzxNaJh UZ93KzzJAksNkogsfBb80EIoR5
L0szWTH5N30m6l33PMYKwsNxAhjiD4YPFtCTURzk8INwziBsa7 rHBl2E/PJsC6XIt1wcqaj73eaZ
3ndrh3+WfRxIhBgpB90SQsOQz0dLxpxcSgBJZmHsFE7AbH498E BmmmDkhWIS8ufxwAuLtb/mS4Um
YDLK5JGJFMhMI1Q2zYJsPM8z0SAncCWnljyOAB936+WolzuIx3 sUMrJVfqt9ciNJpaU4Q0n/saPA
da4rnuouJ+mT98Wyr5a7ezYQX9zMSCyjLIwBUf7RR58Nmamp9Y 9nr5zBg++My8vXfOQGyfMmAxMr
i3EeodL5zYIpAaEmBSC+Ljw1xSaCbLaYkcdcXlqRr9GytfA1GI GNs+1ibD5ypRZMGb4XAZgy7f/9
KfIIihPpZlMTdd9vPrB0Vrm9bjjtjWMcSYl/Gjr8TOzYNuqWqlj2fXIVD48xsS5tAXn55gQlKMFI
CzjMbC0EL9GZNO9BRrrBw9Qb7kcDnco9Gu5xpCe+S+29IPsJOA 5HLRHP/91Httc=
----FIN DEL CORTE----
----INICIO DEL VOLCADO----
ERROR: C1 C2 LEN: 2 3 537
STR:

CVS: $Id: sqlparser.lib.php,v 2.36 2005/08/08 20:22:11 lem9 Exp $
MySQL: 5.0.91-log
USR OS, AGENT, VER: Win IE 7.0
PMA: 2.6.4-pl3
PHP VER,OS: 5.3.3-7+squeeze14 Linux
LANG: es-utf-8
SQL: PK Jux=&�ԭ��PGP� __foroantiguo4__.sqlĽٲ%�q-�ί8o$�@2##3"�2=PWP_إ@5 ��> ��A,k

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PK' at line 1


Tiene algún sentido para ti? Porque para mí aún menos que lo anterior... Y respecto a lo que me dices que haga, voy a intentarlo, pero es como si me hablaras en chino :S:S
  #6 (permalink)  
Antiguo 05/09/2012, 12:22
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: Problemas con una base de datos antigua

Yo ya te dije mi sugerencia:
Cita:
Haz una prueba en una PC local, importando el script desde linea de comandos de Windows.
Como la ventana no se cierra, va mostrando las importaciones y en un momento se puede ver el mensaje de error un poco más claro. Eso ayuda a ver lo que hay que buscar cerca de ese error.
Para mi, intentar subirlo, sin verificarlo en una PC local primero, es un despropósito.
Ya sabes que está fallado y que la importación fracasará. Subirlo a un servidor en web no lo va a reparar mágicamente, tienes que revisarlo primero.
Haz lo que te digo: Cargalo en una PC local con WAMP, por ejemplo, y verifica si lo toma. Sino lo toma, ve al directorio /bin de MYSQL, copialo alli y prueba cargarlo directamente usando consola de comandos MySQL:
Código SQL:
Ver original
  1. mysq> SOURCE "archivo.sql";
Esto hará que lo cargue y ejecute. En un momento se cortará y mostrará el error. Fíjate en qué punto sucede.
__________________
¿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 05/09/2012, 13:10
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

Me he bajado el paquete de sql, he ejecutado el segundo de los editores que me mencionabas, y me da error así, mira:


Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar.


La cuestión es que... no sé qué demonios significa, qué es lo que tengo que hacer. Es la primera vez que me pongo con algo así, sólo pretendo saber si puedo recuperar un foro de hace tiempo que me eliminaron, pero del que pude hacer una copia de seguridad...

Sabes qué me dice que haga?
  #8 (permalink)  
Antiguo 05/09/2012, 13:27
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

ah, el error que sea está aquí:

DROP TABLE IF EXISTS `dial_bbranks`;
CREATE TABLE IF NOT EXISTS `dial_bbranks` (
`rank_id` smallint(5) unsigned NOT NULL auto_increment,
`rank_title` varchar(50) NOT NULL default '',
`rank_min` mediumint(8) NOT NULL default '0',
`rank_max` mediumint(8) NOT NULL default '0',
`rank_special` tinyint(1) default '0',
`rank_image` varchar(255) default NULL,
PRIMARY KEY (`rank_id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
  #9 (permalink)  
Antiguo 05/09/2012, 14:05
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: Problemas con una base de datos antigua

En principio, en ese bloque se ve una doble definición del auto_increment,lo que daría un error de sintaxis:
Código MySQL:
Ver original
  1. DROP TABLE IF EXISTS `dial_bbranks`;
  2. CREATE TABLE IF NOT EXISTS `dial_bbranks` (
  3. `rank_title` varchar(50) NOT NULL default '',
  4. `rank_min` mediumint(8) NOT NULL default '0',
  5. `rank_max` mediumint(8) NOT NULL default '0',
  6. `rank_special` tinyint(1) default '0',
  7. `rank_image` varchar(255) default NULL,
  8. PRIMARY KEY (`rank_id`)
  9. ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 05/09/2012, 14:36
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

ahhhhhhhhhhhhh lo veo!!!

Graciasssssssssss, voy a probar :D:D:D Ahora te cuento...
  #11 (permalink)  
Antiguo 06/09/2012, 11:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problemas con una base de datos antigua

Nada :(:( Supongo que si te pido pasártela y que la apañases sería un marrón para ti, no? Verás, conseguí rescatar esa base de datos antes de que la empresa desapareciera, la del servidor. La BD completa son 18 archivos sql. He conseguido ejecutarlos todos con myadmin excepto esta, la más pesada de todas (25 Megas) En todas está repetida la secuencia que me dijiste, pero esas se ejecutan sin problema. Luego está el hecho de que en alguna parte leí que había que cambiar lo del latin1 por utf8, pero en todas está lo de latin1 y en ninguna ha dado problemas aparentes y se ha ejecutado con facilidad. Y el programa ese lo entiendo ya para ver el problema, pero como no tengo idea de lo que debe ir o no, porque no sé programación php, pues estoy muy perdida... :S:S
  #12 (permalink)  
Antiguo 06/09/2012, 11:33
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: Problemas con una base de datos antigua

Respecto de esto:
Cita:
Luego está el hecho de que en alguna parte leí que había que cambiar lo del latin1 por utf8, pero en todas está lo de latin1 y en ninguna ha dado problemas aparentes y se ha ejecutado con facilidad.
En realidad yo me refería a la codificación propia del archivo plano, del backup .SQL. Muchas veces lo abren sin cuidad con cosas como el Notepad, y cuando lo vuelven a grabar no se percatan que en lugar de ser un archivo UTF8 lo están guardando en Unicode o en ANSI... con lo que se desencadena el desastre.
un archivo plano, pese a lo que algunos creen, también tiene un charset definido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/09/2012 a las 14:02

Etiquetas: php, antiguas
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 12:03.