¿Cómo comprobar todas las tablas de la base de datos de una vez?
En lugar de escribir la consulta check table ''tablename'';
para todas las tablas una por una.
¿Hay algún comando simple como check all
o algo así?
desde la línea de comando puede usar:
mysqlcheck -A --auto-repair
El comando es este:
mysqlcheck -u root -p --auto-repair --check --all-databases
Debe proporcionar la contraseña cuando se le solicite,
o puede ejecutar este, pero no se recomienda porque la contraseña está escrita en texto sin cifrar:
mysqlcheck -u root --password=THEPASSWORD --auto-repair --check --all-databases
Utilice la siguiente consulta para imprimir
REPAIR
declaraciones SQL para todas las tablas dentro de una base de datos:Después de eso, copie todas las consultas y ejecútelas
mydatabase
.Nota: reemplace
mydatabase
con el nombre de base de datos deseadofuente
No es necesario escribir la contraseña, solo use cualquiera de estos comandos (se explica por sí mismo):
fuente
El siguiente comando funcionó para mí usando el símbolo del sistema (como administrador) en Windows:
Ejecute mysqlcheck con el usuario root, solicite una contraseña, verifique todas las bases de datos y repare automáticamente las tablas dañadas.
fuente
No hay un comando predeterminado para hacer eso, pero puede crear un procedimiento para hacer el trabajo. Iterará a través de filas de
information_schema
y llamaráREPAIR TABLE 'tablename';
a cada fila.CHECK TABLE
aún no es compatible con declaraciones preparadas. Aquí está el ejemplo (reemplace MYDATABASE con el nombre de su base de datos):fuente
Me gusta esto para una simple verificación desde el shell:
fuente
mysql -ss
para omitir los nombres de las columnas de la salida; esto permitiría eliminarlosNR != 1
de su códigopara hosts plesk, uno de estos debería hacer: (ambos hacen lo mismo)
fuente
Es posible que necesite nombre de usuario y contraseña:
Se le pedirá una contraseña.
Si desea poner cron, ¡PERO su contraseña será visible en texto plano!
fuente
Si quedan tablas dañadas después
tratar
fuente