This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

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 --check 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:

mysqlrepairL'opzione di default sarà -r (--repair)
mysqlanalyzeL'opzione di default sarà -a (--analyze)
mysqloptimizeL'opzione di default sarà -o (--optimize)

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:

--print-defaultsStampa l'elenco degli argomenti e termina.
--no-defaultsNon legge alcun file di configurazione.
--defaults-file=# Legge le opzioni di default solo dal file #.
--defaults-extra-file=# Legge questo file dopo aver letto quelli globali.

Gli argomenti principali sono:

-A, --all-databasesControlla tutti i database. Equivale a --databases specificando tutti i database.
-a, --analyzeAnalizza le tabelle specificate.
-1, --all-in-1Invece di eseguire una query per ogni tabella, usa una query per database, specificando tutte le tabelle del database con una lista separata da virgole.
--auto-repairSe rileva che una tabella è corrotta, la ripara automaticamente. La riparazione viene effettuata dopo aver controllato tutte le tabelle, se almeno una è corrotta.
--character-sets-dir=nomeDirectory dei set di caratteri.
-c, --checkControlla se le tabelle contengono errori.
-C, --check-only-changedControlla solo le tabelle che sono state modificare dall'ultimo check o non sono state chiuse correttamente.
-g, --check-upgradeControlla se le tabelle hanno modifiche che dipendono dalla versione. Può essere usato con --auto-repair per correggere le tabelle che devono essere aggiornate. Utile quando si aggiorna MariaDB
--compressUsa la compressione nel protocollo server/client.
-B, --databasesVerifica 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.
-# , --debug[=nome]Stampa il log di debug. In genere questo è 'd:t:o,filename'.
--debug-checkVerifica la memoria e l'uso dei file aperti prima di uscire.
--debug-infoStampa alcune info di debug e termina.
--default-character-set=nameImposta il set di caratteri di default.
-F, --fastControlla solo le tabelle che non sono state chiuse correttamente.
--fix-db-nomiCorregge i nomi dei datavase. Utile quando si aggiorna MariaDB
--fix-table-namesCorregge i nomi delle tabelle. Utile quando si aggiorna MariaDB
--flushEsegue 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, --forceContinua anche se ottiene un errore SQL.
-e, --extendedSe questa opzione è usata con --check, assicura che la tabella sia 100% coerente, ma impiega molto tempo. Se si usa questa opzione con --repair, forza l'utilizzo della vecchia e più lenta riparazione, con il metodo della cache delle chiavi, invece della più rapida riparazione per ordinamento.
-?, --helpStampa un messaggio di help ed esce.
-h, --host=nomeSi connette all'host specificato.
-m, --medium-checkPiù veloce di extended-check, ma trova solo il 99.99 percento dei possibili errori. Dovrebbe andare bene nella maggior parte dei casi.
--write-binlogLogga i comandi ANALYZE, OPTIMIZE e REPAIR TABLE. Abilitato per default; si usi --skip-write-binlog per non inviare questi comandi agli slave.
-o, --optimizeOttimizza le tabelle.
-p, --password[=nome]Password da usare per connettersi al server. se non è specificata, viene chiesta da tty.
-P, --port=# 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).
--protocol=nomeIl protocollo da usare per la connessione (tcp, socket, pipe, memory).
-q, --quickSe 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, --repairCorregge quasi tutto tranne gli indici univoci che non sono univoci.
-s, --silentStampa solo i messaggi di errore.
-S, --socket=nomeIl file di socket da usare.
--sslUsa SSL per la connessione (abilitato automaticamente usando i prossimi flag). Si disabilita con '--skip-ssl'.
--ssl-ca=nameFile CA in formato PEM (si veda la documentazione di OpenSSL, implica --ssl).
--ssl-capath=nameDirectory CA (si veda la documentazione di OpenSSL, implica --ssl).
--ssl-cert=nomeCertificato X509 in formato PEM (implica --ssl).
--ssl-cipher=nomeCifra SSL da usare (implica --ssl).
--ssl-key=nomeChiave X509 in formato PEM (implica --ssl).
--ssl-verify-server-certConfronta il "Common Name" nel certificato del server con il nome host usato nella connessione. Questa opzione è disabilitata per default.
--tablesSovrascrive l'opzione --databases (-B).
--use-frmSe 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, --user=nomeNome utente da usare, se non è quello corrente.
-v, --verboseStampa le info sui vari stadi. Si può ripetere questa opzione più volte per ottenere info via via più dettagliate.
-V, --versionScrive 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 --auto-repair (come si fa quando si aggiorna MariaDB), mysqlcheck controlla prima tutte le tabelle e successivamente, in una fase separata, ripara quelle che sono risultate corrotte.

mysqlcheck --all-databases ignora le tabelle di log interne MySQL 'general_log' e 'slow_log' perché non possono essere verificate, riparate od ottimizzate.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.