SQL –
My SQL
Copiado de
http://www.ignside.net/man/mysql/desastre.php
Chequear y reparar tablas
Primero esto:
check table nombre_tabla
repair table nombre_tabla
Y si no funciona entonces esto:
myisamchk
isamchk
He perdido la contraseña del root
Si has perdido la contraseña que usas como root, es decir, para administrar
My SQL, puedes establecer otra, usando el mismo ordenador donde físicamente está instalado el daemon:
- Apaga el servidor
- Inicia el servidor con la opción --skip-grant-tables.
- Conecta con el servidor usando mysql -u root mysql. Con eso no te pedira la password y accederas directamante a la base de datos My SQL que es la que guarda la informacion de usuarios.
- cambia la contraseña usando este comando SQL: mysql> UPDATE user SET Password=PASSWORD('nuevacontraseña') WHERE User='root';
- Ejecuta un nuevo comando SQL: mysql> FLUSH PRIVILEGES;
- Apaga y reinicia el servidor y ya podras usar la nueva password
El servidor termina de repente
Lo primero que has de ver es si efectivamente se ha caido el servidor o si es el programa cliente el que falla. mysql>mysqladmin -u root -p version servirá para ver si el servidor esta en funcionamiento (un simple
ctrl-alt-supr tambien te sirve para ver si mysqld esta en la lista de procesos activos).
Si se ha caido el server, prueba a ver si encuentras pistas en el archivo tu_host.err, que encontrarás en la carpeta c:mysqldata. En este log de errores se guardan los arranques y cierres del server, y otra información util.
Tambien puedes crear un log general iniciando mysqld con la opcion --log[=archivo]. Por ejemplo:
C:mysqlbin>mysqld --log=log_general.log creará en la carpeta data el archivo log_general.log. Este es un ejemplo de su contenido:
C:MYSQLBINMYSQLD.EXE, Version: 4.0.
12-max-debug-log, started with:
Tcp port: 3306 Unix socket:
My SQL
Time Id Command Argument
030504 16:07:21 1 Connect Acceso negado para usuario: 'ODBC@127.0.0.1' (Usando clave: SI)
030504 16:07:40 2 Connect root@127.0.0.1 on
030504 16:07:47 2 Query show databases
030504 16:07:52 3 Connect root@127.0.0.1 on
3 Query show status
2 Quit
El servidor debe siempre cerrarse de forma adecuada, bien con winmysqladmin desde la barra del reloj de tu ordenador, o bien desde la ventana msdos con el comando: c:mysqlbin>mysqladmin -u root -p shutdown
Cerrar el servidor de otra forma puede corromper los datos de las tablas y ser fuente de problemas.
Creando copias de tus datos con mysqldump
Con mysqldump puedes obtener copias de la estructura y datos de las tablas. Con la copia de la estructura podras recrear tus tablas (vacias de datos) mientras que con la copia completa de estructura y datos obtendrás una copia espejo de tu base de datos.
Este es tambien el método logico si lo que quieres es pasar tu base de datos de un servidor a otro, por ejemplo de tu servidor local de pruebas al servidor en la red.
Veamos algunos ejemplos:
- Copia de estructura y datos: c:mysqlbin>mysqldump -u root -p --opt nombre_de_mi_db_a_copiar > nombre_copia.sql
- Copia solo datos: c:mysqlbin>mysqldump -u root -p --no-create-info nombre_de_mi_db_a_copiar > nombre_copia.sql
- Copia solo estructura: c:mysqlbin>mysqldump -u root -p --no-data nombre_de_mi_db_a_copiar > nombre_copia.sql
Como no hemos indicado ruta ninguna, los archivos resultantes apareceran en bin.
Para cargar el respaldo de nuevo en el server, simplemente: el proceso a la inversa:
C:mysqlbin>mysql -u root -pcontraseña base_a_cargar < copia_respaldo.sql.