Jak mogę bezpiecznie bezpiecznie zainstalować
To zawsze będzie trudne.
Zanim cokolwiek zrobisz, przeczytaj stronę kompatybilności 5.5 / 5.6 . Pamiętaj 1 dużą różnicę między 2:
Począwszy od MySQL 5.6.6, kilka parametrów serwera MySQL ma wartości domyślne, które różnią się od poprzednich wersji. Motywacją dla tych zmian jest zapewnienie lepszej wydajności po wyjęciu z pudełka i ograniczenie konieczności ręcznej zmiany ustawień przez administratora bazy danych. Zmiany te mogą ulec zmianie w przyszłych wydaniach w miarę uzyskiwania informacji zwrotnych.
Jedną z dużych zmian jest to, że 5.5 używa 1 dużego pliku jako dziennika transakcji, a 5.6 używa kilku:
Dlatego, jeśli aktualizujesz istniejącą instalację MySQL, nie zmieniłeś już wartości tych parametrów z ich poprzednich wartości domyślnych, a problemem jest kompatybilność wsteczna, możesz jawnie ustawić te parametry na ich poprzednie wartości domyślne. Na przykład umieść te linie w pliku opcji serwera:
[mysqld]
innodb_file_per_table=0
innodb_checksum_algorithm=INNODB
binlog_checksum=NONE
Jeśli używasz replikacji, zwróć uwagę na tę część łącza:
Aby zaktualizować serwery używane do replikacji, najpierw zaktualizuj slave, a następnie master. Replikacja między urządzeniem nadrzędnym a jego urządzeniami podrzędnymi powinna działać, pod warunkiem że wszystkie używają tej samej wartości wartość_ jawnego_default_do_czasu:
Zlikwiduj niewolników, zaktualizuj je, skonfiguruj za pomocą pożądanej wartości wartość_ jawnego_default_do_czasu i przywróć.
Slave rozpoznaje po formacie dzienników binarnych otrzymanych od wzorca, że wzorzec jest starszy (przed wprowadzeniem jawnego_defaults_for_timestamp) i że operacje na kolumnach TIMESTAMP pochodzących od wzorca używają starego zachowania TIMESTAMP.
Zlikwiduj wzorzec, zaktualizuj go i skonfiguruj przy użyciu tej samej jawnej_defaults_for_testestamp wartości użytej w urządzeniach slave i przywróć go ponownie.
Jeśli jest to serwer produkcyjny, radziłbym najpierw spróbować tego na maszynie testującej. Mieliśmy dość trudne przejście z wersji 5.5 do 5.6 i zdecydowaliśmy się zainstalować kolejną maszynę, która została zainstalowana z wersją 5.6 i użyć mysldump do tworzenia kopii zapasowych i ładowania ich do naszych baz danych na tym komputerze. Pamiętaj jednak, że zajmie to dużo czasu, jeśli masz dużą bazę danych (ze względu na odtwarzanie plików transakcji innodb).
Ogólna metoda:
- użyj mysqldump do tworzenia kopii zapasowych bazy danych (użytkowników, struktury ścieżki i danych tabeli) oraz pliku konfiguracyjnego (prawdopodobnie /etc/mysql/my.cnf)
- Usuń 5.5. Po usunięciu 5.5 sprawdź, czy pliki transakcji innodb zniknęły (ibdata1, ib_logfile0 i ib_logfile1). Ponieważ 5.6 korzysta z lepszej wersji transakcji, zakładam, że również z tego skorzystasz ...
- Zainstaluj 5.6
- Zmień nowy plik konfiguracyjny i dodaj to, co zmieniłeś dla wersji 5.5 (zapoznaj się z powyższym linkiem i sprawdź, czy którakolwiek ze zmian stała się nieprawidłowa).
- Prześlij kopię zapasową do 5.6 (najpierw użytkownicy). Pamiętaj, że może to zająć trochę czasu, ponieważ odtworzy nowe pliki transakcji.
W poleceniach (po utworzeniu kopii zapasowej):
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
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