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

Aggiornare da MySQL 5.0 o precedente a MariaDB

Se si esegue un upgrade a MariaDB 5.1 da MySQL 5.1 non occorre fare nulla con i dati o con i client MySQL. Tutto dovrebbe "semplicemente funzionare".

Quando si esegue un upgrade tra differenti versioni di MariaDB o MySQL occorre eseguire il programma mysql_upgrade per convertire i dati che non sono compatibili tra le varie versioni. In questo modo si converte la tabella dei privilegi, nel database mysql, al formato più recente.

In quasi tutti i casi mysql_upgrade dovrebbe essere in grado di convertire le tabelle senza bisogno di effettuare un dump e un restore dei dati.

Dopo aver installato MariaDB, si esegua:

mysql_upgrade --verbose

Se si desidera associarlo a una porta TCP/IP specifica:

mysql_upgrade --host=127.0.0.1 --port=3308 --protocol=tcp

Se si desidera connettersi tramite socket:

mysql_upgrade --socket=127.0.0.1 --protocol=socket

Per conoscere le altre opzioni, si esegua --help.

"mysql_upgrade" legge i valori di default dalle sezioni [mysql_upgrade] e [client] del file my.cnf.

Vi sono diverse ragioni per cui è necessario convertire le tabelle; ecco qualche esempio:

  • La collation (ordinamento dei caratteri) di un index è cambiata
  • Un tipo di campo ha cambiato formato
    • DECIMAL e VARCHAR hanno cambiato formato tra MySQL 4.1 e MySQL 5.0
  • Uno Storage Engine ha un nuovo formato
    • Il formato di ARCHIVE è stato cambiato tra 5.0 e 5.1
  • Il formato in cui vengono registrati i nomi delle tabelle è cambiato
    • In MySQL 5.1 i nomi delle tabelle sono codificati in modo tale che i nomi dei file siano identici su tutti i computer. I vecchi nomi di tabella, che contengono caratteri proibiti nei nomi dei file, appaiono in 'SHOW TABLES' con il prefisso #mysql50# finché non vengono convertiti.

Se non si convertono le tabelle, si potrebbe verificare una delle seguenti conseguenze:

  • Si ottengono dei warning nel log degli errori ogni volta che si accede a una tabella con un nome di file non valido (cioè vecchio).
  • Quando si effettuano ricerche sulle chiavi non vengono estratte tutte le righe.
  • Si ottiene un errore "ERROR 1459 (HY000): Table upgrade required" quando si accede a una tabella.
  • Possono verificarsi dei crash

"mysql_upgrade" works by calling mysqlcheck with different options and running the "mysql_fix_privileges" script. If you have trouble with "mysql_upgrade", you can run these commands separately to get more information of what is going on.

Most of the things in the MySQL 5.1 manual section also applies to MariaDB.

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.
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.