Zainstaluj MySql 5.6 na Ubuntu 16.04

40

Wygląda na to, że Ubuntu 16.04 jest dostarczany z MySQL 5.7, jednak muszę zainstalować 5.6.

Gdy próbuję zainstalować go jawnie sudo apt-get install mysql-server-5.6, pojawia się następujący błąd:

Package mysql-server-5.6 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  mysql-community-server:i386 mysql-common:i386 mysql-community-server mysql-common percona-xtradb-cluster-server-5.6:i386 percona-server-server-5.6:i386 mysql-testsuite-5.7:i386
  mariadb-server-10.0:i386 percona-xtradb-cluster-server-5.6 percona-server-server-5.6 mysql-testsuite-5.7 mariadb-server-10.0 mysql-server-core-5.7:i386 mysql-server-5.7:i386 mysql-server-core-5.7
  mysql-server-5.7

Czy jest jakiś sposób na zainstalowanie 5.6?

Tarlog
źródło
Ten mysql 5.7.12 to wieprz RAM.
dibs

Odpowiedzi:

69

Zastosowałem następujące podejście:

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6 mysql-client-5.6

Jeśli wystąpi błąd podczas wykonywania ostatniego polecenia, spójrz na sekcję komentarza tej odpowiedzi.

basex
źródło
10
Może być konieczne sudo rm /var/lib/mysql/debian-5.7.flaglub Sub-process /usr/bin/dpkg returned an error code (1)
przerwie
2
usługa mysql nie uruchamia się poprawnie. używając „systemctl status mysql.service” otrzymuję „Nie udało się uruchomić LSB: Uruchom i zatrzymaj demona serwera bazy danych mysql”. Czy to dlatego, że repozytorium Trusty używa wersji upstart, a wersja 5.7 używa systemd?
Jowan Sebastian
1
@jowansebastian - Czy kiedykolwiek dowiedziałeś się, dlaczego tak się dzieje? Mam podobny błąd.
Barrie Reader
@BarrieReader niestety, stworzyłem maszynę wirtualną centos do tego, co robiłem i sprawiłem, że działała w porządku.
jowan sebastian
+1. Czy wiesz, czy istnieje sposób na zainstalowanie określonej wersji MySQL 5.6, takiej jak 5.6.35?
vphilipnyc
9

Wygląda na to, że udało mi się to zrobić.

  1. W Oprogramowanie i aktualizacje / Inne oprogramowanie dodano repozytorium 14.04:

    deb http://archive.ubuntu.com/ubuntu trusty main
    
  2. Zainstalowany klient i serwer mysql:

    sudo apt install mysql-server-5.6
    sudo apt install mysql-client-5.6
    

Aktualizacja: Przed zainstalowaniem 5.6 upewnij się, że nie ma innych pakietów mysql:

dpkg -l | grep mysql - zwraca listę pakietów mysql.

Użyj, apt-get purge <package name>aby je oczyścić.

Źródło: Aktualizacja 16.04 zepsuła serwer mysql

Tarlog
źródło
1
Dobre rozwiązanie, ale dlaczego potrzebujesz 5.6 zamiast 5.7?
Uwe Burger,
5
5.7 nie jest kompatybilny wstecz. Niektóre SQLy aplikacji, nad którymi pracuję, kończą się niepowodzeniem ...
Tarlog,
2
Jaki masz błąd? Podejrzewam, że jest to spowodowane flagą ONLY_FULL_GROUP_BY, która domyślnie jest włączona w MySQL 5.7. Wyłącz ją, a wszystko będzie dobrze.
Jaydee,
Obecnie nie pamiętam szczegółów, próbowałem prawie dwa miesiące temu. Jeśli dobrze pamiętam, chodziło o przetwarzanie niektórych dat. Może parsowanie dat.
Tarlog,
5.7 faktycznie wymusza schemat tabeli
Richard Haven
8

Napotkałem ten sam problem i wykonałem proste kroki poniżej:

 sudo apt-get install software-properties-common
 $ sudo add-apt-repository -y ppa:ondrej/mysql-5.6
 $ sudo apt-get update
 $ sudo apt-get install mysql-server-5.6

Rozwiązanie działało dla mnie Na zdrowie !!

Ramesh Chand
źródło
Oprócz tych rozwiązań: Najpierw musisz usunąć te foldery: /etc/mysql/ /var/lib/mysql /var/log/mysql /var/lib/mysql-filters /var/lib/mysql-keyringI ten plik:/var/lib/mysql/debian-5.7.flag
3
Cytując ondrej: „nie używaj, zepsuty” . Sprawdź tutaj launchpad.net/~ondrej
Fractalf
3
dpkg --force-depends -P `dpkg -l |awk '/mysql/{print $2}'`

rm -r /etc/mysql/

apt-get install mysql-server mysql-client
Michal91
źródło
1

Programiści MySQL dostarczają pakiety Xenial MySQL 5.6 we własnych repozytoriach , dlatego powinno to być lepsze niż instalowanie oficjalnych pakietów Ubuntu Trusty , ponieważ generalnie lepiej jest instalować pakiety utworzone dla twojej wersji Ubuntu.

Jeśli masz już pakiety MySQL Server, najpierw je odinstaluj; po prostu odinstaluj wszystko, co pokazuje dpkg -l | grep mysql-server.

Wystarczy pobrać i zainstalować mysql-apt-configpakiet DEB w poprzednim łączu. Podczas instalacji zapyta, którą wersję chcesz, więc możesz wybrać 5.6. Po zakończeniu instalacji pakietu sudo apt update && sudo apt install mysql-server-5.6zainstaluje MySQL Server 5.6.

fkraiem
źródło
3
To nie działa, nie ma opcji wersji 5.6, tylko 5.7
Frodik
5
Rzeczywiście wydaje się, że odkąd ta odpowiedź została napisana, wsparcie MySQL 5.6 zostało usunięte z mysql-apt-configpakietu, co jest dziwne, ponieważ wciąż jest wymienione jako obsługiwane na połączonej stronie ...
fkraiem
1

Miałem ten sam problem i wypróbowałem wiele opcji. Miałem wiele problemów libdbd-mysql-perl; system powiedział, że nie zamierza zainstalować tej biblioteki.

Pomyślałem więc, aby zainstalować go z Aptitude, które instalują pakiet i poprawiają wszystkie zależności.

Jeśli nie masz umiejętności, możesz to uzyskać w następujący sposób:sudo apt-get install aptitude

Przede wszystkim musisz odinstalować istniejący mysql. Następnie musisz zainstalować żądany pakiet.

sudo aptitude install mysql-server-5.6

Umiejętności dają wiele możliwości, co robić. Pierwszą opcją jest zachowanie faktycznego pakietu. Więc naciskaj (N) o, aż znajdziesz opcję mówiącą o obniżeniu poziomu następnych pakietów:

libmysqlclient20 [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.7.13-0ubuntu0.16
mysql-common [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.6.30-1+deb.sury.org

następnie wciśnij (Y) es, a aptitude zainstaluje mysql-server-5.6. Oto opcję, którą powinieneś zaakceptować:

wprowadź opis zdjęcia tutaj

Jeśli po tym system nie będzie mógł połączyć się z serwerem mysql, musisz ponownie uruchomić komputer.

rebduvid
źródło