2010-01-05 24 views
8

He logrado corromper (o algo) la tabla de "sesiones" en un MySQL que tengo (que se llama "e_learning_resource_prelive"). Esto normalmente no sería un problema ya que podría volver a un volcado de copia de seguridad de la base de datos. Sin embargo, la tabla dañada parece estar parando me eliminación de la base de datos:Drop atornilló la tabla en Mysql db

> mysqladmin -u root drop e_learning_resource_prelive 
Dropping the database is potentially a very bad thing to do. 
Any data stored in the database will be destroyed. 

Do you really want to drop the 'e_learning_resource_prelive' database [y/N] y 
mysqladmin: DROP DATABASE e_learning_resource_prelive failed; 
error: 'Unknown table 'sessions'' 

Cuando entro en el DB de la tabla de sesiones se muestra en show_tables (que es el único que existe, la caída mysqladmin suprime el resto) pero no puede soltarlo:

mysql> show tables; 
+---------------------------------------+ 
| Tables_in_e_learning_resource_prelive | 
+---------------------------------------+ 
| sessions        | 
+---------------------------------------+ 
1 row in set (0.00 sec) 

mysql> drop table sessions; 
ERROR 1051 (42S02): Unknown table 'sessions' 

¿Alguien me puede decir cómo puedo eliminar esta tabla o todo el archivo db? Necesito eliminar el archivo db y luego reconstruirlo desde mi volcado de respaldo.

Respuesta

-1

Utilice la interfaz GUI. Probablemente haya algún carácter no muy imprimible en el nombre sessions.

O tal vez el archivo subyacente en el sistema de archivos se eliminó? Si es así, intente crear un archivo vacío llamado sessions allí.

+0

Gracias wally pero el db está en un servidor Linux por lo que no podré ejecutar ninguna herramienta gui para verlo, creo. –

7

Lo encontré, parece algo obvio ahora. Los dbs solo tienen una carpeta que se puede eliminar como cualquier otra cosa.

sudo rm -r/var/lib/mysql/e_learning_resource_prelive

Gracias cualquiera que mirara, de todos modos :) máximo

+0

hizo esto para mi sitio drupal ... probé todos los otros métodos y eso no funcionó. solo borrar el archivo fue simple. Desearía saberlo antes ... –

1

session es una palabra clave reservada (http://developer.mimer.com/validator/sql-reserved-words.tml), creo que es por eso que su base de datos es corrupto.

Tuve el mismo problema al usar una palabra clave reservada (references en mi caso), y también tuve el problema de que renombrar, descartar o truncar la tabla estaba dando un error sql.

Para solucionar este problema, utilice caracteres de retroceso en la consulta alter table.

ALTER TABLE `session` RENAME TO newname 

De esta manera, la consulta no fallará, y sus datos aún están allí (¡gracias a Dios!). ¡Espero que alguien encuentre esto útil!

Cuestiones relacionadas