mysqlcheck
mysqlcheck
è uno strumento di manutenzione che permette di verificare, riparare, analizzare e ottimizzare più tabelle in una volta dalla riga di comando.
Utilizzo:
./client/mysqlcheck [OPZIONI] database [tabelle]
OR
./client/mysqlcheck [OPZIONI] --databases DB1 [DB2 DB3...]
OR
./client/mysqlcheck [OPZIONI] --all-databases
mysqlcheck
serve a effettuare un CHECK (-c, -m, -C), un REPAIR (-r), un ANALYZE (-a) o un OPTIMIZE (-o). Alcune delle opzioni (come -e o -q) possono essere usate allo stesso tempo. Non tutte le opzioni sono supportate da tutti gli Storage Engine.
Le opzioni -c, -r, -a e -o sono mutualmente esclusive, il che significa che se si specificano più opzioni solo l'ultima verrà presa in considerazione.
L'opzione
viene usata per default, se nessun'altra è specificata. E' possibile cambiare il comportamento di default facendo un link simbolico al binario, o copiandolo con un altro nome; le alternative sono:--
check
mysqlrepair | L'opzione di default sarà -r ( ) |
mysqlanalyze | L'opzione di default sarà -a ( ) |
mysqloptimize | L'opzione di default sarà -o ( ) |
Vengono letti i gruppi [mysqlcheck]
e [client]
dai file my.cnf.
Le seguenti opzioni possono essere usate come primo argomento e gestiscono la lettura dei file di configurazione:
| Stampa l'elenco degli argomenti e termina. |
| Non legge alcun file di configurazione. |
| Legge le opzioni di default solo dal file #. |
| Legge questo file dopo aver letto quelli globali. |
Gli argomenti principali sono:
-A ,
| Controlla tutti i database. Equivale a specificando tutti i database. |
-a ,
| Analizza le tabelle specificate. |
-1 ,
| Invece di eseguire una query per ogni tabella, usa una query per database, specificando tutte le tabelle del database con una lista separata da virgole. |
| Se rileva che una tabella è corrotta, la ripara automaticamente. La riparazione viene effettuata dopo aver controllato tutte le tabelle, se almeno una è corrotta. |
| Directory dei set di caratteri. |
-c ,
| Controlla se le tabelle contengono errori. |
-C ,
| Controlla solo le tabelle che sono state modificare dall'ultimo check o non sono state chiuse correttamente. |
-g ,
| Controlla se le tabelle hanno modifiche che dipendono dalla versione. Può essere usato con per correggere le tabelle che devono essere aggiornate. Utile quando si aggiorna MariaDB |
| Usa la compressione nel protocollo server/client. |
-B ,
| Verifica diversi database. Si notino le differenze nell'utilizzo; in questo caso non vengono specificate le tabelle. Tutti gli argomenti-nome sono considerati nomi di database. |
-# ,
| Stampa il log di debug. In genere questo è 'd:t:o,filename'. |
| Verifica la memoria e l'uso dei file aperti prima di uscire. |
| Stampa alcune info di debug e termina. |
| Imposta il set di caratteri di default. |
-F ,
| Controlla solo le tabelle che non sono state chiuse correttamente. |
| Corregge i nomi dei datavase. Utile quando si aggiorna MariaDB |
| Corregge i nomi delle tabelle. Utile quando si aggiorna MariaDB |
| Esegue un flush delle tabelle dopo ogni verifica. Utile se non si vuole che dopo il controllo le tabelle continuino ad occupare spazio nella cache. |
-f ,
| Continua anche se ottiene un errore SQL. |
-e ,
| Se questa opzione è usata con , assicura che la tabella sia 100% coerente, ma impiega molto tempo. Se si usa questa opzione con , forza l'utilizzo della vecchia e più lenta riparazione, con il metodo della cache delle chiavi, invece della più rapida riparazione per ordinamento. |
-? ,
| Stampa un messaggio di help ed esce. |
-h ,
| Si connette all'host specificato. |
-m ,
| Più veloce di extended-check, ma trova solo il 99.99 percento dei possibili errori. Dovrebbe andare bene nella maggior parte dei casi. |
| Logga i comandi ANALYZE, OPTIMIZE e REPAIR TABLE. Abilitato per default; si usi per non inviare questi comandi agli slave. |
-o ,
| Ottimizza le tabelle. |
-p ,
| Password da usare per connettersi al server. se non è specificata, viene chiesta da tty. |
-P ,
| Numero di porta da usare o 0 per usare il default, che viene cercato in (nell'ordine): my.cnf, $MYSQL_TCP_PORT, /etc/services, default built-in (3306). |
| Il protocollo da usare per la connessione (tcp, socket, pipe, memory). |
-q ,
| Se si usa questa opzione con CHECK TABLE, impedisce la scansione delle righe per cercare collegamenti errati. E' il tipo di check più rapido. Se usato con REPAIR TABLE, cerca di riparare solo l'albero degli indici. E' il tipo di riparazione più rapido. |
-r ,
| Corregge quasi tutto tranne gli indici univoci che non sono univoci. |
-s ,
| Stampa solo i messaggi di errore. |
-S ,
| Il file di socket da usare. |
| Usa SSL per la connessione (abilitato automaticamente usando i prossimi flag). Si disabilita con ' '. |
| File CA in formato PEM (si veda la documentazione di OpenSSL, implica ). |
| Directory CA (si veda la documentazione di OpenSSL, implica ). |
| Certificato X509 in formato PEM (implica ). |
| Cifra SSL da usare (implica ). |
| Chiave X509 in formato PEM (implica ). |
| Confronta il "Common Name" nel certificato del server con il nome host usato nella connessione. Questa opzione è disabilitata per default. |
| Sovrascrive l'opzione (-B). |
| Se usato con REPAIR, legge la struttura della tabella dal file .frm, così che la tabella possa essere riparata anche se l'header del .MYI è corrotto. |
-u ,
| Nome utente da usare, se non è quello corrente. |
-v ,
| Stampa le info sui vari stadi. Si può ripetere questa opzione più volte per ottenere info via via più dettagliate. |
-V ,
| Scrive le informazioni sulla versione ed esce. |
Per conoscere i valori predefiniti delle opzioni e vedere gli argomenti presenti nei file di configurazione:
./client/mysqlcheck --print-defaults ./client/mysqlcheck --help
Quando si esegue mysqlcheck
con
(come si fa quando si aggiorna MariaDB), --
auto-repairmysqlcheck
controlla prima tutte le tabelle e successivamente, in una fase separata, ripara quelle che sono risultate corrotte.
mysqlcheck
ignora le tabelle di log interne MySQL '--
all-databasesgeneral_log
' e 'slow_log
' perché non possono essere verificate, riparate od ottimizzate.