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

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-defaultsStampa l'elenco degli argomenti ed esce.
--no-defaultsNon 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:

-?, --helpMostra questo help ed esce.
-#, --debug[=name]Stampa il log del debug.
--debug-checkControlla l'uso della memoria e dei file aperti, poi esce.
-T, --debug-infoStampa alcune informazioni di debug ed esce.
-f, --forceForza l'esecuzione di mysqlcheck anche se mysql_upgrade è già stato eseguito per la versione corrente di MySQL.
-h, --host=strSi connette all'host specificato.
-p, --password[=str]Password da usare per connettersi al server. Se non viene specificata, viene richiesta da tty.
-P, --port=nameNumero 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=strIl protocollo da usare per la connessione (tcp, socket, pipe, memory).
-s, --silentStampa meno informazioni.
-S, --socket=strIl file del socket da usare per la connessione.
-t, --tmpdir=strDirectory per i file temporanei.
-u, --user=strNome utente per il login, se non è quello corrente.
-v, --verboseMostra più informazioni.
--write-binlogTutti 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.
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.