Foros del Web » Programando para Internet » PHP »

reparar base de datos

Estas en el tema de reparar base de datos en el foro de PHP en Foros del Web. tengo una base de datos que parece funcionar bien, pero cuando voy a hacer una petición me da error. Como antes funcionaba bien (estuvo funcionando ...
  #1 (permalink)  
Antiguo 23/04/2006, 13:29
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
reparar base de datos

tengo una base de datos que parece funcionar bien, pero cuando voy a hacer una petición me da error. Como antes funcionaba bien (estuvo funcionando sin problemas más de 6 meses a pleno rendimiento), deduzco que la base se ha corrompido o algo así. ¿Sabéis cómo reparar la base? Me imagino que se puede hacer, porque tengo (aparte de este tema) un hosting con un panel de control que permite reparar las bases de datos con solo pulsar un botón, pero no sé como lo hace. He buscado en PHP.net y en mysql.org pero no encuentro nada, y aquí en los foros la búsqueda parece estar estropeada.

Gracias anticipadas.
  #2 (permalink)  
Antiguo 23/04/2006, 13:50
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 12 años, 4 meses
Puntos: 5
De acuerdo Reparar

Hola tognaco

Postea el error que te aparece en tu browse de esa manera podremos ayudarte mejor

Salu2

__________________
. .: El mejor Inicio :. .
  #3 (permalink)  
Antiguo 23/04/2006, 13:53
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
En realidad es un programa que no he creado yo y que me contesta simplemente "error en la consulta", por lo que no puedo saber qué tipo de error es el que hay. Estoy busncando por ahí y he encontrado un comando mysql llamado repair table que puede que sirva, pero no sé cómo se ejecuta. Lo he puesto en un archivo PHP:

REPAIR TABLE actividades;

pero me da parse error. ¿Sabéis cómo se hace eso?
  #4 (permalink)  
Antiguo 23/04/2006, 16:09
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Echale uno ojo a este link para el uso de REPAIR http://dev.mysql.com/doc/refman/5.0/...air-table.html

Ahora bien seria bueno que postearas el error que te marca además de tu código para poder ayudarte de mejor manera con tu problema.


Última edición por mauled; 23/04/2006 a las 16:26
  #5 (permalink)  
Antiguo 23/04/2006, 17:30
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
He estado mirando el link que me propones pero me temo que no lo entiendo bien. He creado un archivo php con el siguiente código

Código PHP:
<?
include ("../include/mysql.inc");
$base=$mysql_db;
$c=mysql_connect($mysql_server,$mysql_login,$mysql_pass);
mysql_select_db ($base$c);
repair table actividades//he probado también a ponerlo sin comillas y da el mismo resultado
mysql_close($c);
?>
y el resultado que me arroja es:
Parse error: parse error in D:\xampplite\htdocs\probando\admin\repair.php on line 6

Espero que podáis ayudarme, yo ahora mismo no sé qué más intentar.
  #6 (permalink)  
Antiguo 23/04/2006, 17:37
 
Fecha de Ingreso: noviembre-2004
Mensajes: 50
Antigüedad: 13 años, 1 mes
Puntos: 1
mysql_query("repair table actividades");
__________________
Los estandares deben hacer a los navegadores, no los navegadores a los estandares...
  #7 (permalink)  
Antiguo 23/04/2006, 17:38
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 12 años, 4 meses
Puntos: 5
De acuerdo Deduciendo

Hola tognaco

Prueba con este Script ( es una manera de deducir si estas conectandote o no con el MYSQL asimismo si sabes el nombre de la BD y Tabla seria bueno que vayas depurando )
Código PHP:
<?php
$host
="localhost";
$user="root";
$pass="";
$bd="";
$cn=mysql_connect($host,$user,$pass)or die("No se pudo conectar con MySQL");
mysql_select_db($bd,$cn)or die("Base de datos no encontrada");
echo 
"Se conecto a MySQL Correctamente <br>";
echo 
"La base de datos ".$bd." si se encontro <br>";
?>

A lo mejor te ayude en algo

Salu2

__________________
. .: El mejor Inicio :. .
  #8 (permalink)  
Antiguo 23/04/2006, 17:49
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
Cita:
Iniciado por Blueeye
mysql_query("repair table actividades");
Muchas gracias, eso funciona .

Attak, utilizaré también tu script, la verdad es que no suelo hacer ese tipo de comprobaciones, y es muy necesario.
  #9 (permalink)  
Antiguo 23/04/2006, 18:01
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
Perdón por la insistencia, pero una vez comprobado que me conecto a la base y ejecutado el script del repair table sin obtener error, me gustaría saber si efectivamente la tabla se ha reparado. Obviamente, si de nuevo empieza a funcionar, eso significaría que se ha reparado, pero es que he visto en mysql.org que:

Cita:
REPAIR TABLE returns a result set with the following columns:
Column Value
Table The table name
Op Always repair
Msg_type One of status, error, info, or warning
Msg_text The message
Sin embargo, yo no puedo acceder a estos resultados, a mí sólo me sale la página en blanco. ¿Sabríais cómo acceder a los resultados?
  #10 (permalink)  
Antiguo 23/04/2006, 18:10
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 12 años, 4 meses
Puntos: 5
De acuerdo Bd

Hola tognaco

Estas seguro que tu BD esta corrupto ???

Usa el phpmyadmin te puede ayudar con este lio

Salu2
__________________
. .: El mejor Inicio :. .
  #11 (permalink)  
Antiguo 23/04/2006, 18:16
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 136
Antigüedad: 13 años
Puntos: 1
Bueno, me contesto a mí mismo. Combinando el script de attak con lo dicho por blueye y unas lineas añadidas por mí para sacar los resultados, sale este script, que hace a la perfección todo lo deseado:

Código PHP:
<?
$host
="localhost";
$user="root";
$pass="";
$bd="nombre_de_la_base";
$cn=mysql_connect($host,$user,$pass)or die("No se pudo conectar con MySQL");
mysql_select_db($bd,$cn)or die("Base de datos NO encontrada");
echo 
"Se conectó a MySQL correctamente <br>";
echo 
"La base de datos ".$bd." SÍ se encontró <br>";
$resultado=mysql_query("repair table nombre_de_la_tabla");
while(
$salida mysql_fetch_array($resultado)){
       for (
$i=0;$i<4;$i++){                                                                            
        if(
$i==0){       
            echo 
"tabla: ",$salida[$i],"<br>";
        }elseif(
$i==1){       
            echo 
"operación: ",$salida[$i],"<br>";
        }elseif(
$i==2){       
            echo 
"tipo de mensaje: ",$salida[$i],"<br>";
        }elseif(
$i==3){       
            echo 
"texto del mensaje: ",$salida[$i],"<br>";
            
        }
    }
}
mysql_close($cn);
?>
... por si a alguien puede serle útil alguna vez

Última edición por tognaco; 23/04/2006 a las 18:21
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 08:34.