mysql_upgrade

Stai visualizzando una vecchia versione di questo article. Visualizza la versione più recente.

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

The connect options given to mysql_upgrade are passed along to mysqlcheck and mysql.

The mysql_fix_privilege_tables script is not actually called; it's included as part of mysql_upgrade.

If you have a problem with mysql_upgrade, try run it in very verbose mode:

mysql_upgrade --verbose --verbose other-options

The following differences exists between "mysql_upgrade" in MariaDB and MySQL (as of MariaDB 5.1.50):

  • MariaDB will convert long table names properly.
  • MariaDB will convert InnoDB tables (no need to do a dump/restore or ALTER TABLE).
  • MariaDB will convert old archive tables to the new 5.1 format (note: new feature in testing).
  • "mysql_upgrade --verbose" will run "mysqlcheck --verbose" so that you get more information of what is happening.
  • More descriptive output.

Commenti

Sto caricando i commenti......
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.