Aggiornamento da MySQL 5.5 a MySQL 5.6 su Ubuntu 14.04 LTS


17

Ho installato la mia LAMPADA con i seguenti comandi:

sudo apt-get update
sudo apt-get install apache2 apache2-suexec mysql-server php5-mysql
sudo mysql_secure_installation
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install phpmyadmin

È stato quasi un anno fa. Ora in PHPMyAdmin, vedo quanto segue:

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.43-0ubuntu0.14.04.1 - (Ubuntu)
Protocol version: 10
Web server
Apache/2.4.7 (Ubuntu)
Database client version: libmysql - 5.5.43
PHP extension: mysqli Documentation

La versione di MySQL è 5.5.43-0ubuntu0.14.04.1 . Come posso installare e usare in modo sicuro mysql 5.6.4+ come devo usare FULLTEXTcon INNODB. Vedo i pacchetti nel repository Ubuntu, ma dovrei davvero evitare qualsiasi conflitto o problema di installazione.

Grazie per qualsiasi aiuto.

Risposte:


22

Come posso installare in modo sicuro

Sarà sempre difficile.

Leggere la pagina di compatibilità 5.5 / 5.6 prima di fare qualsiasi cosa. Mente 1 grande differenza tra i 2:

A partire da MySQL 5.6.6, diversi parametri di MySQL Server hanno impostazioni predefinite che differiscono dalle versioni precedenti. La motivazione di queste modifiche è fornire prestazioni out-of-box migliori e ridurre la necessità per l'amministratore del database di modificare manualmente le impostazioni. Queste modifiche sono soggette a possibili revisioni nelle versioni future man mano che otteniamo feedback.

1 delle grandi modifiche è che 5.5 utilizza 1 file di grandi dimensioni come registro delle transazioni e 5.6 ne utilizza diversi:

Pertanto, se stai aggiornando un'installazione MySQL esistente, non hai già modificato i valori di questi parametri rispetto ai loro valori predefiniti precedenti e la compatibilità con le versioni precedenti è un problema, potresti voler impostare esplicitamente questi parametri sui loro valori predefiniti precedenti. Ad esempio, inserisci queste righe nel file delle opzioni del server:

 [mysqld] 
 innodb_file_per_table=0 
 innodb_checksum_algorithm=INNODB
 binlog_checksum=NONE

Se si utilizza la replica, prestare attenzione a questa parte del collegamento:

Per aggiornare i server utilizzati per la replica, aggiornare prima gli slave, quindi il master. La replica tra il master e i suoi slave dovrebbe funzionare a condizione che tutti utilizzino lo stesso valore di esplic_defaults_for_timestamp:

Abbattere gli slave, aggiornarli, configurarli con il valore desiderato di esplic_defaults_for_timestamp e ripristinarli.

Gli slave riconosceranno dal formato dei registri binari ricevuti dal master che il master è più vecchio (precede l'introduzione di esplicit_defaults_for_timestamp) e che le operazioni sulle colonne TIMESTAMP provenienti dal master utilizzano il vecchio comportamento TIMESTAMP.

Abbattere il master, aggiornarlo e configurarlo con lo stesso valore esplicito_defaults_for_timestamp utilizzato sugli slave e ripristinarlo.

Se questo è un server di produzione, consiglierei di provare prima su una macchina di prova. Abbiamo avuto una transizione piuttosto difficile dalla 5.5 alla 5.6 e abbiamo optato per l'installazione di un'altra macchina che è stata installata con 5.6 e utilizzare mysldump per creare backup e caricarli nei nostri database su quella macchina. Tieni presente che ciò richiederà molto tempo se hai un database di grandi dimensioni (a causa della ricreazione dei file delle transazioni innodb).

Un metodo generale:

  • usa mysqldump per creare backup del tuo database (utenti, struttura trattabile e dati della tabella) e del tuo file di configurazione (probabilmente /etc/mysql/my.cnf)
  • Rimuovi 5.5. Dopo aver rimosso 5.5, verificare che i file delle transazioni innodb siano spariti (ibdata1, ib_logfile0 e ib_logfile1). Poiché 5.6 utilizza la versione migliore delle transazioni, suppongo che anche tu dovresti usare questo ...
  • Installa 5.6
  • Modificare il nuovo file di configurazione e aggiungere ciò che è stato modificato per 5.5 (tenere presente il collegamento sopra e verificare se una qualsiasi delle modifiche è diventata non valida).
  • Carica il tuo backup in 5.6 (prima gli utenti). Tieni presente che ciò può richiedere un po 'di tempo poiché ricrea i nuovi file di transazione.

Nei comandi (dopo aver effettuato il backup):

sudo apt-get remove mysql-server
sudo apt-get autoremove
sudo apt-get install mysql-client-5.6 mysql-client-core-5.6
sudo apt-get install mysql-server-5.6

2
Per tua informazione, prima ho fatto un backup e poi l'ho installato con successo con questo comando:sudo apt-get remove mysql-server;sudo apt-get autoremove;sudo apt-get install mysql-client-5.6 mysql-client-core-5.6;sudo apt-get install mysql-server-5.6
YahyaE

2
Sembra buono sì: D Gratz! Lì l'ho modificato ;-)
Rinzwind,

Questa procedura cancella i database in questo server?
Please_Dont_Bully_Me_SO_Lords,

@EASI No, ma la domanda è ... negativa. Quando si aggiorna mysql è necessario creare un backup e ripristinarlo per eseguire la scansione mysql per funzioni / parametri / opzioni / impostazioni obsolete.
Rinzwind,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.