Ir al contenido principal

MySQL [ERROR] Cannot find or open table

En este caso en particular voy a hablar de un error que aparece cuando haces un respaldo de manera errada de MySQL, específicamente con las tablas INODB.

Muchos usuarios de MySQL acostumbran a mover tablas de una base de datos a otra simplemente copiando los archivos de un lado a otro, lo cual si bien no es el mejor método funciona sin problemas para las tablas MyISAM, sin embargo si hacemos esto para las tablas INODB la cosa no resulta bien y seguramente tendras un error del tipo [ERROR] Cannot find or open table "XXX/xxxx" aunque la misma exista y tenga los permisos y usuarios correctos.

Que hacer en este caso, bueno en mi experiencia en particular se resolvió el problema de manera sencilla (bueno después de googlear un rato) puesto que también había copiado el archivo ibdata1 que se encuentra en la raíz de mysql (usualmente /var/lib/mysql). Los pasos que realice fueron:
  1. Detener el mysql
  2. Remover el ibdata1 (de la nueva instalación)
  3. Copiar el ibdata1 de la instalación anterior (solo este archivo)
  4. Revisar los permisos (664) y usuarios (mysql:mysql) sean correctos
  5. Reiniciar el mysql
Con esto quedo resuelto el problema, otra cosa importante es  que en mi caso también estaba usando el parámetro innodb_file_per_table en la instalación anterior por lo que es necesario tener esto habilitado en el my.cnf antes de reiniciar el servicio.

En el caso que no tengas el ibdata1 viejo, la cosa se pone más complicada por lo que pude leer y probar hasta cierto punto (cuando me di cuenta que lo podía hacer de la forma anterior pues lo deje así), en todo caso lo que se debe hacer se explica en http://www.chriscalender.com/?p=28

Espero que esta información sea de ayuda.

Comentarios

Entradas más populares de este blog

Como monitorear servidores remotos con Icinga2

Continuando con la publicación anterior instalar cinga2 en debian wheezy ahora les indico como monitorear nuestros servidores remotos utilizando el nuevo método desarrollado por Icinga el cual supone mejoras de seguridad frene a NRPE, aunque este último aun se puede utilizar. Lo primero es utilizar el asistente para crear los certificados. Ten en cuenta que debes contestar que no (n)  a la primera pregunta puesto que estamos configurando el nodo central. root@master ~# icinga2 node wizard Welcome to the Icinga 2 Setup Wizard! We'll guide you through all required configuration details. Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: n Ya creado el certificado del master podemos crear las claves para realizar la conexión de los satelites ó nodos a monitorear, el primero en este caso es otro servidor debian wheezy (satelite1.localdomain) y el segundo será un servidor Windows Server 2008 R2 (satelite2.localdomain). Creo que es ...

Migrar cuentas entre servidores de correo usando pop2imap

A continuación les dejo una forma sencilla de migrar cuentas de correo entre 2 servidores de correo utilizando para ello un script en perl creado por LinuxFrance pop2imap  el cual posee entre sus ventajas: transferencias incrementales (solo descarga los mensajes que no estén en el servidor de destino) y que el mismo puede ser ejecutado desde un equipo distinto a los servidores de origen y destino. La gente de LinuxFrance también tiene otro script llamado  imapsync  que funciona de manera similar pero para IMAP. Yo estoy usando debian 7 así que las dependencia a instalar para mi distro son estas: aptitude install libmail-pop3client-perl libmail-imapclient-perl libdigest-hmac-perl libemail-simple-perl libdate-manip-perl Una vez que tenemos instaladas las dependencia podemos extraer y ejecutar el script, para ello basta con ejecutar: tar -xzvf pop2imap-1.18.tgz Con lo cual se descomprime el archivo en la carpeta pop2imap-1.18...

Instalar Icinga2 en debian Wheezy con BD Postgres

A continuación les dejo una guía rápida para la instalación de Icinga2  en debian wheezy,  cuando tenga que hacerlo en jessie actualizo el manual. Lo primero que debes tener en cuenta es que en la pagina de Icinga tienes bastante documentación sobre como hacer esto mismo, de hecho este manual esta basado en lo que allí aparece. Otro detalle es que parto de la idea que ya tienes configurado Apache2 y Postgres Comencemos por agregar los repositorios necesarios. Debian Monitoring Project ~# echo "deb http://debmon.org/debmon debmon-wheezy main" > /etc/apt/sources.list.d/wheezy-debmon.list ~# wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - OK Según lo referido en esta pagina es posible que existan problemas de dependencias con icinga2 así que es recomendable agregar también el repositorio backports Debian Backports ~# echo "deb http://http.debian.net/debian wheezy-backports main" > /etc/apt/sources.list.d/wheezy-bac...