Eliminar mysql. ibd,. Antes de descartar la tabla, elimine los archivos ibdata1, ib_logfile0 e ib_logfile1. Luego reconstruya la mesa. ¿Alguna pregunta?
. desde y. ibd se puede utilizar para restaurar tablas InnoDB en lotes.
Crear una estructura de tabla perdida
Primero debes instalar mysql-utilities.
// RedHatyum -y install MySQL-server mysql-utilities//debian apt install MySQL-utilities
Usa mysqlfrm desde. archivo frm.
//Analiza un archivo .frm para generar la declaración de creación de tabla MySQL frm-diagnostic/var/lib/MySQL/test/t 1. frm//Todos los análisis. El archivo frm en un directorio genera una declaración de creación de tabla root @ nombre de usuario: ~ # MySQL frm-diagnostic/var/lib/MySQL/my _ createtb SQL root @ nombre de usuario: ~ # grep "^create table" createtb.sql |wc. - l124
Puedes ver que a * * * generó 124 declaraciones de creación de tablas.
Muchas veces, las declaraciones de creación de tablas se pueden generar desde otras bibliotecas, como otras bases de datos para la aplicación o diferentes entornos de prueba. El siguiente mysqldump se utiliza para generar declaraciones de creación de tablas:
mysqldump. -no-data-compact my_db gt;createtb.sql
Inicie sesión en MySQL para generar la tabla.
mysql gt crea la base de datos my_dbmysql gt usando my_dbDatabase modificadamysql gtsource createtb.sqlLa consulta es normal, 0 filas se ven afectadas (0,07 segundos)...
Importar archivo de datos antiguo
Descartar los recién creados. Archivo ibd sin datos.
root @ nombre de usuario:/var/lib/MySQL/my _ db # ll *IBD | WC 12411167941 root @ nombre de usuario:/var/lib/MySQL/my _ db # MySQL-e " mostrar tablas de mi_db"\|grep-v? tabla en mi base de datos? \|Al leer a; haga mysql -e "ALTER TABLE my_db. $a descartar el espacio de tabla"; hecho root @ nombre de usuario:/var/lib/MySQL/my_db #ll *. ibd|wcls: No se puede acceder a '*'. 'ibd': No existe tal archivo o directorio 000
Puedes verlos todos. El archivo idb ha sido descartado. Luego copia el anterior. ibd y no olvides cambiar el propietario: chown mysql. *, y luego importe estos archivos de datos a la base de datos.
root @ nombre de usuario:/var/lib/MySQL/my_db # MySQL -e " mostrar tablas de mi _ db " \ | grep -v? tabla en mi base de datos? \|Al leer un;\do mysql -e "Modificar tabla my_db.
$a import tablespace"; completado
Lista después de completar la importación
Utilice mysqlcheck para verificar todas las tablas en la base de datos my_db:
root@nombredeusuario:/ var/lib/MySQL/my _ db # MySQL check-c my _ dbmy _ db . CDP _ backup _ point OK......
Todas las tablas se han importado correctamente
.