mysql_upgrade
mysql_upgrade
è uno strumento che controlla e aggiorna le tabelle all'ultima versione.
Utilizzo
mysql_upgrade [--force] [--user=# --password --host=hostname --port=# --socket=# --protocol=tcp|socket|pipe|memory --verbose] OTHER_OPTIONS]
Si dovrebbe utilizzare mysql_upgrade
quando si esegue l'upgrade da una versione precedente di MySQL/MariaDB, ad esempio da MySQL 5.0 a MariaDB 5.1.
I seguenti gruppi vengono letti dai file my.cnf: [mysql_upgrade] e [client].
Le opzioni seguenti possono essere fornite come primo argomento, per gestire i file di configurazione:
--print-defaults | Stampa l'elenco degli argomenti ed esce. |
--no-defaults | Non legge le opzioni di default da alcun file di configurazione. |
--defaults-file=# | Legge le opzioni di configurazione solo dal file specificato #. |
--defaults-extra-file=# | Legge questo file dopo aver letto quelli globali. |
Gli argomenti principali sono:
-?, --help | Mostra questo help ed esce. |
-#, --debug[=name] | Stampa il log del debug. |
--debug-check | Controlla l'uso della memoria e dei file aperti, poi esce. |
-T, --debug-info | Stampa alcune informazioni di debug ed esce. |
-f, --force | Forza l'esecuzione di mysqlcheck anche se mysql_upgrade è già stato eseguito per la versione corrente di MySQL. |
-h, --host=str | Si connette all'host specificato. |
-p, --password[=str] | Password da usare per connettersi al server. Se non viene specificata, viene richiesta da tty. |
-P, --port=name | Numero di porta da usare o 0 per il default da leggere, nell'ordine da, my.cnf, $MYSQL_TCP_PORT, /etc/services o dal default built-in (3306). |
--protocol=str | Il protocollo da usare per la connessione (tcp, socket, pipe, memory). |
-s, --silent | Stampa meno informazioni. |
-S, --socket=str | Il file del socket da usare per la connessione. |
-t, --tmpdir=str | Directory per i file temporanei. |
-u, --user=str | Nome utente per il login, se non è quello corrente. |
-v, --verbose | Mostra più informazioni. |
--write-binlog | Tutti i comandi, compreso mysqlcheck, sono loggati nel binlog. Abilitato per default ; si usi --skip-write-binlog se i comandi non devono essere replicati sugli slave. |
"mysql_upgrade" è principalmente un framework per chiamare mysqlcheck. Esegue le seguenti operazioni:
# Trova il path di datadir echo "show show variables like 'datadir'" | mysql mysqlcheck --no-defaults --all-databases --fix-db-names --fix-table-names --write-binlog mysqlcheck --check-upgrade --all-databases --auto-repair --write-binlog mysql_fix_privilege_tables
Le opzioni di connessione passate a mysql_upgrade vengono passate a mysqlcheck e mysql.
Lo script mysql_fix_privilege_tables non viene effettivamente chiamato; è incluso come parte di mysql_upgrade.
Se si riscontrano problemi con mysql_upgrade, si provi ad eseguirlo in modalità verbosa:
mysql_upgrade --verbose --verbose other-options
Vi sono le seguenti differenze tra il "mysql_upgrade" incluso in MariaDB e quello di MySQL (a partire da MariaDB 5.1.50):
- MariaDB converte i nomi lunghi delle tabelle in modo appropriato.
- MariaDB converte le tabelle InnoDB (non c'è bisogno di eseguire un dump/restore o un ALTER TABLE).
- MariaDB converte le vecchie tabelle archive nel nuovo formato 5.1 (nota: è una nuova funzionalità in fase di test).
- "mysql_upgrade --verbose" esegue "mysqlcheck --verbose", così che si possano ottenere più informazioni su cosa sta accadendo.
- Un output più descrittivo.