Upgrade von MySQL 5.5 auf MySQL 5.6 unter Ubuntu 14.04 LTS

17

Ich habe meine LAMPE mit folgenden Befehlen installiert:

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

Es war fast ein Jahr her. Jetzt in PHPMyAdmin sehe ich Folgendes:

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

MySQL-Version ist 5.5.43-0ubuntu0.14.04.1 . Wie kann ich sicher und sicher installieren und zu verwenden MySQL 5.6.4+ als ich brauche zu verwenden FULLTEXTmit INNODB. Ich sehe die Pakete im Ubuntu-Repository, aber ich sollte wirklich Konflikte oder Installationsprobleme vermeiden.

Danke für jede Hilfe.

YahyaE
quelle

Antworten:

22

Wie kann ich sicher sicher installieren

Es wird immer schwierig sein.

Bitte lesen Sie die 5.5 / 5.6-Kompatibilitätsseite, bevor Sie etwas unternehmen. Beachten Sie 1 großen Unterschied zwischen den 2:

Ab MySQL 5.6.6 haben einige MySQL Server-Parameter andere Standardeinstellungen als frühere Versionen. Die Motivation für diese Änderungen besteht darin, eine bessere Out-of-Box-Leistung bereitzustellen und die Notwendigkeit zu verringern, dass der Datenbankadministrator die Einstellungen manuell ändert. Diese Änderungen können in zukünftigen Versionen geändert werden, sobald wir Feedback erhalten.

Eine der großen Änderungen ist, dass 5.5 1 große Datei als Transaktionsprotokoll verwendet und 5.6 mehrere:

Wenn Sie eine vorhandene MySQL-Installation aktualisieren, die Werte dieser Parameter noch nicht gegenüber den vorherigen Standardwerten geändert haben und die Abwärtskompatibilität ein Problem darstellt, möchten Sie diese Parameter möglicherweise explizit auf die vorherigen Standardwerte setzen. Fügen Sie beispielsweise die folgenden Zeilen in die Serveroptionsdatei ein:

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

Wenn Sie die Replikation verwenden, beachten Sie diesen Teil des Links:

Um die für die Replikation verwendeten Server zu aktualisieren, aktualisieren Sie zuerst die Slaves und dann den Master. Die Replikation zwischen dem Master und seinen Slaves sollte funktionieren, vorausgesetzt, dass alle denselben Wert von explicit_defaults_for_timestamp verwenden:

Fahren Sie die Slaves herunter, aktualisieren Sie sie, konfigurieren Sie sie mit dem gewünschten Wert für explicit_defaults_for_timestamp und führen Sie sie erneut aus.

Die Slaves erkennen anhand des Formats der vom Master empfangenen Binärprotokolle, dass der Master älter ist (vor der Einführung von explicit_defaults_for_timestamp) und dass Operationen an TIMESTAMP-Spalten, die vom Master stammen, das alte TIMESTAMP-Verhalten verwenden.

Fahren Sie den Master herunter, aktualisieren Sie ihn, und konfigurieren Sie ihn mit demselben Wert für explicit_defaults_for_timestamp, der für die Slaves verwendet wird, und führen Sie ihn erneut aus.

Wenn dies ein Produktionsserver ist, würde ich raten, dies zuerst auf einer Testmaschine zu versuchen. Wir hatten einen ziemlich schwierigen Übergang von 5.5 zu 5.6 und entschieden uns für die Installation eines anderen Computers, der mit 5.6 installiert wurde, und verwenden mysldump, um Backups zu erstellen und diese in unsere Datenbanken auf diesem Computer zu laden. Bedenken Sie jedoch, dass dies lange dauern kann, wenn Sie über eine große Datenbank verfügen (aufgrund der Neuerstellung der innodb-Transaktionsdateien).

Eine allgemeine Methode:

  • Verwenden Sie mysqldump, um Backups Ihrer Datenbank (Benutzer, Tabellenstruktur und Tabellendaten) und Ihrer Konfigurationsdatei (wahrscheinlich /etc/mysql/my.cnf) zu erstellen.
  • Entfernen Sie 5.5. Stellen Sie nach dem Entfernen von 5.5 sicher, dass die Innodb-Transaktionsdateien nicht mehr vorhanden sind (ibdata1, ib_logfile0 und ib_logfile1). Da 5.6 die bessere Transaktionsversion verwendet, gehe ich davon aus, dass Sie auch diese verwenden würden ...
  • Installieren Sie 5.6
  • Ändern Sie die neue Konfigurationsdatei und fügen Sie hinzu, was Sie für 5.5 geändert haben (beachten Sie den obigen Link und prüfen Sie, ob eine der Änderungen ungültig geworden ist).
  • Laden Sie Ihr Backup in 5.6 hoch (Benutzer zuerst). Beachten Sie, dass dies einige Zeit in Anspruch nehmen kann, da dadurch neue Transaktionsdateien erstellt werden.

In Befehlen (nach dem 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
Rinzwind
quelle
2
Zu Ihrer Information, ich habe zuerst ein Backup erstellt und es dann mit folgendem Befehl erfolgreich installiert: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
Das sieht ja gut aus: D Gratz! Dort habe ich es in
bearbeitet ;-)
Löscht diese Prozedur die Datenbanken auf diesem Server?
Please_Dont_Bully_Me_SO_Lords
@EASI Nein, aber die Frage ist ... schlecht. Wenn Sie ein Upgrade von MySQL durchführen, müssen Sie ein Backup erstellen und es wiederherstellen, damit MySQL nach veralteten Funktionen / Parametern / Optionen / Einstellungen sucht.
Rinzwind