Problem
Ich möchte von MySQL 5.6 auf 5.7 upgraden.
Lösung
- Fertigen Sie zunächst ein Backup des gesamten Systems an.
- Laden Sie den MSI Installer für 5.7 von http://dev.mysql.com/downloads/windows/installer/5.7.html herunter (web-Variante nur, wenn Sie Online-Zugriff vom Server aus haben).
- Stoppen Sie ICS Tracker, indem Sie den Service "Apache Tomcat 7.0 Tomcat7" stoppen.
- Öffnen Sie cmd.exe als Administrator und wechseln Sie in ein beliebiges Verzeichnis, z.B.
cd C:\temp.
- Erstellen Sie einen Datenbank-Dump von 5.6, indem Sie folgendes aufrufen:
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump" --user root --password --add-drop-table --all-databases --force > data-for-upgrade.sql
Der Dump namens data-for-upgrade.sql wird im aktuellen Verzeichnis erstellt. - Stoppen sie den MYSQL Service via "net stop MySQL56".
- Starten Sie den Installer via Doppelklick auf die heruntergeladene Datei.
- Falls der Installer zunächst ein Update vorschlägt, führen Sie nur das Update für die Workbench und Connector/J durch. Wenn dies beendet ist, klicken Sie "Add...", und wählen Sie folgendes aus (im Beispiel ist Version 5.7.12 gezeigt, aber auch eine höhere 5.7 Version erfüllt den Zweck):
Beenden Sie die Installation, indem Sie dieselben Einstellungen wie für 5.6 vornehmen. - Starten Sie die Workbench, erstellen Sie eine neue Connection zum 5.7 Server, starten Sie die neue Connection und stellen Sie sicher, dass unter Server -> Server Status das korrekte Configuration File (bei üblicher Konfiguration: C:\ProgramData\MySQL\MySQL Server 5.7\my.ini) angegeben ist. Ansonsten muss es angepasst werden via AppData\Roaming\MySQL\Workbench\server_instances.xml.
- Öffnen Sie das Configuration File via Server–>Options File, und setzen Sie unter Networking max_allowed_packet auf 16M (und dann Apply).
- Aufgrund leicht geänderter Grant-Abfragen in MySQL 5.7 müssen Sie dann noch Ihren DB-Usern einen zusätzlichen Grant geben, d.B. für User goco:
GRANT REFERENCES ON goco.* TO 'goco';
- Schliessen Sie die Workbench.
- Restarten Sie den MySQL57 Service.
- Importieren Sie das unter Punkt 3 erstellte File:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql" -u root -p --execute="source data-for-upgrade.sql" --force
- und lassen Sie MySQL die importierten Tabellen überprüfen und eventuell upgraden:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql_upgrade.exe" -u root -p
- Tomcat-Anpassung: Um Warnungen im Logfile zu vermeiden, sollten Sie die JDBC connections in Tomcat (context.xml) ergänzen mit ?useSSL=false, also z.B.:
url="jdbc:mysql://localhost:3306/goco?useSSL=false"
- Starten Sie Tomcat. Die Applikation sollte laufen wie vorher auch. Nach einer gewissen Zeit können Sie MySQL 5.6 deinstallieren.
- Weitere Informationen finden Sie unter https://dev.mysql.com/doc/refman/5.7/en/upgrading.html