Ostatnio koledze zamarzyło się, by na jego VPSie działającym (jeszcze) pod kontrolą Debiana Jessie (Debian 8) można było z poziomu PhpMyAdmin tworzyć bazy danych o dłuższych niż 16 znaków nazwach. W końcu – cytuję – mamy 2018, a nie 1996. Oczywiście postanowiłem pomóc, zwłaszcza, że rozwiązanie jest proste – aktualizacja.

MySQL 5.7 w Debian Jessie

Aktualizacja systemu do Debian Stretch (Debian 9), lub aktualizacja bazy danych do najnowszej wersji. Tak duża aktualizacja w środowisku produkcyjnym rzadko kiedy przebiega bez problemów. A tu jeszcze baza MySQL została wyparta przez MariaDBniby zgodne, ale znając życie, niespodzianki mogą być. Dlatego zaproponowałem, że najprościej będzie zaktualizować samą usługę MySQL do nowszej wersji (te 16 znaków w nazwie to nie jedyny powód ;-)).

Zaczynamy od dodania odpowiednich źródeł pakietów w systemie:

sudo nano /etc/apt/sources.list

I dodajemy 2 linijki:

deb http://repo.mysql.com/apt/debian/ jessie mysql-5.7
deb-src http://repo.mysql.com/apt/debian/ jessie mysql-5.7

Ew. dla wersji 5.8:

deb http://repo.mysql.com/apt/debian/ jessie mysql-5.8
deb-src http://repo.mysql.com/apt/debian/ jessie mysql-5.8

Oraz dodajemy odpowiednie klucze:

wget https://repo.mysql.com/RPM-GPG-KEY-mysql
sudo apt-key add ./RPM-GPG-KEY-mysql

Na koniec uruchamiamy pełną aktualizację pakietów:

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

Wprawdzie można aktualizację przeprowadzić bardziej precyzyjnie, koncentrując się na MySQL, ale zaktualizowany system, to bezpieczniejszy system, a więc na pewno nie zaszkodzi…

Wersja MySQL przed aktualizacją:

[email protected]:~$ mysql --version
mysql Ver 14.14 Distrib 5.5.59, for debian-linux-gnu (x86_64) using readline 6.3

Wersja MySQL po aktualizacji:

[email protected]:~$ mysql --version
mysql Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using EditLine wrapper
Możecie też skorzystać z tej metody w przypadku Debiana Stretch, wtedy po prostu zmieńcie „jessie” na „stretch” w linijkach wstawianych do pliku „source.list”.

Aktualizacja baz i tabel

Z racji tego, że jest to duża aktualizacja, prawdopodobnie po jej zakończeniu, np. w PhpMyAdmin traficie np. na taki błąd:

#3009 - Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50559, now running 50721. Please use mysql_upgrade to fix this error.

By go skorygować należy zaktualizować bazy i tabele do nowszych wersji, np. za pomocą takiego polecenia:

mysql_upgrade -u root -p

Przy małych bazach będzie szybko, przy większych chwilę trzeba poczekać…

Na koniec zrestartuj usługę MySQL

Kolejny błąd na który możecie po takiej aktualizacji natrafić, również w PhpMyAdmin, np. podczas próby zaimportowania danych do bazy z pliku to:

Warning in ./libraries/dbi/DBIMysqli.php#204
mysqli_query(): (HY000/1682): Native table 'performance_schema'.'session_variables' has the wrong structure

Rozwiązanie tego problemu jest jeszcze prostsze – wystarczy zrestartować usługę (serwera) MySQL:

sudo service mysql restart
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Janusz i Janusz skorzystali z promocji dla czytelników WebInsider.pl i zapłacili 80% mniej za księgowość internetową wFirma
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Księgowość internetowa wFirma 80% taniej dla czytelników WebInsider.pl