Czy na Ubuntu 16.04 można zainstalować MySQL 5.5 lub 5.6?


13

Niedawno zaktualizowałem system do Ubuntu 16.04. Niestety muszę pracować z MySQL 5.5 lub 5.6. Wypróbowałem wiele rozwiązań, aby MySQL 5.5 lub 5.6 działały na Ubuntu 16.04, na przykład Zainstaluj MySql 5.6 na Ubuntu 16.04 . Ale żaden z nich nie działa. Ubuntu wykrywa niezaspokojone zależności, ale mówi „ale nie będzie instalowany” dla 5.5 lub mówi, że pakiet „mysql-server-5.6” nie ma kandydata do instalacji ...

Czy nie można wymusić wcześniejszej wersji MySQL na Ubuntu? Dlaczego?


1
Oficjalne repozytoria Ubuntu 16.04 nie zawierają żadnej wersji MySQL innej niż 5.7. Jeśli chcesz innej wersji, musisz znaleźć pakiet z innego źródła. Naprawdę nie powinieneś uaktualnić do 16.04 bez sprawdzenia tego.
— fkraiem 26.04.16


Które odpowiedzi na połączone pytanie próbowałeś? Niektórzy używają pakietu Deb firmy Oracle lub nawet kompilują go ze źródła, co powinno działać bez względu na stan repozytorium oprogramowania.
— David Foerster

@fkraiem „Naprawdę nie powinieneś mieć aktualizacji ... bez sprawdzania tego” - zakładasz, że konieczność MySQL 5.5 była znana w czasie aktualizacji. Niedawno rozpocząłem nową pracę ze starym oprogramowaniem, które wymaga MySQL 5.5 (nic nowego) - więc powinienem sprawdzić wszystkich możliwych pracodawców i to, co oni uruchomili przed aktualizacją?
— Nathan Crause

Odpowiedzi:


22

Przewodnik krok po kroku *, aby zainstalować mysql 5.5.x na Ubuntu 16.04 Xenial-Xerus. Zobacz tę dokumentację

LUB

Zobacz kroki poniżej:

Instalowanie MySQL 5.5.51 na Ubuntu 16.06

  1. Odinstaluj istniejącą wersję MySQL

    sudo rm /var/lib/mysql/ -R
    
  2. Usuń profil MySQL

    sudo rm /etc/mysql/ -R
    
  3. Automatycznie odinstaluj mysql

    sudo apt-get autoremove mysql* --purge
    sudo apt-get remove apparmor
    
  4. Pobierz wersję 5.5.51 ze strony MySQL

    wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.56-linux-glibc2.5-x86_64.tar.gz
    
  5. Dodaj mysqlgrupę użytkowników

    sudo groupadd mysql
    
  6. Dodaj mysql(nie bieżącego użytkownika) do mysqlgrupy użytkowników

    sudo useradd -g  mysql mysql
    
  7. Wyodrębnij mysql-5.5.51-linux2.6-x86_64.tar.gzdo/usr/local

    cd /usr/local
    sudo tar -xvf mysql-5.5.49-linux2.6-x86_64.tar.gz
    
  8. Utwórz mysqlfolder w/usr/local

    sudo mv mysql-5.5.49-linux2.6-x86_64 mysql
    
  9. Ustaw mysqlwłaściciela katalogu i grupę użytkowników

    cd mysql
    sudo chown -R mysql:mysql *
    
  10. Zainstaluj wymagany pakiet lib

    sudo apt-get install libaio1
    
  11. Uruchom skrypt instalacyjny mysql

    sudo scripts/mysql_install_db --user=mysql
    
  12. Ustaw właściciela katalogu mysql spoza katalogu mysql

    sudo chown -R root .
    
  13. Ustaw właściciela katalogu danych z katalogu mysql

    sudo chown -R mysql data
    
  14. Skopiuj plik konfiguracyjny mysql

    sudo cp support-files/my-medium.cnf /etc/my.cnf 
    
  15. Uruchom mysql

    sudo bin/mysqld_safe --user=mysql &
    sudo cp support-files/mysql.server /etc/init.d/mysql.server
    
  16. Zainicjuj hasło użytkownika root

    sudo bin/mysqladmin -u root password '111111'
    
  17. Uruchom serwer mysql

    sudo /etc/init.d/mysql.server start
    
  18. Zatrzymaj serwer mysql

    sudo /etc/init.d/mysql.server stop
    
  19. Sprawdź status mysql

    sudo /etc/init.d/mysql.server status
    
  20. Włącz myql podczas uruchamiania

    sudo update-rc.d -f mysql.server defaults 
    
  21. Wyłącz mysql podczas uruchamiania (opcjonalnie)

    sudo update-rc.d -f mysql.server remove
    
  22. Dodaj ścieżkę mysql do systemu

    sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
    
  23. Teraz bezpośrednio użyj poniższego polecenia, aby uruchomić mysql

    mysql -u root -p 
    

PS: Należy dokonać ponownego uruchomienia, aby zmiany mogły zostać wprowadzone.

Na podstawie chińskiego bloga


1
Działa jak sharm! Dziękuję Ci. Tylko jedna rzecz - jeśli zainstalujesz MySQL na Ubuntu 16 - nie twórz skryptu systemctl - po ponownym uruchomieniu utworzy się on sam.
— 1nstinct

1
Ponowne uruchomienie musi nastąpić między krokami 16 i 17, aby kroki 17–21 działały.
— e_i_pi

zrobiłem to wszystko, ale skończyło się to problemami z zależnościami (prawdopodobnie niektóre biblioteki współdzielone dostały błędną wersję).
— Amichai Schreiber,

Czy to naprawdę konieczne, aby usunąć apparmor? Nie widzę linii do ponownej instalacji. Nie wiem zbyt dobrze o apparmor, ale wygląda na to, że odinstalowanie go jest problemem bezpieczeństwa.
— Parag

Nadal pracuj bez usuwania
— zbroi

4

Spróbuj tego, najpierw musisz usunąć

sudo rm /var/lib/mysql/debian-5.7.flag

następnie

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


2

Prostszą alternatywą jest użycie Percona Server. Według ich dokumentacji :

Instalowanie serwera Percona z repozytorium apt Percona

  1. Pobierz pakiety repozytorium z sieci Percona:

    wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
    
  2. Zainstaluj pobrany pakiet za pomocą dpkg . Aby to zrobić, uruchom następujące polecenia jako root lub sudo :

    dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
    

    Po zainstalowaniu tego pakietu należy dodać repozytoria Percona. Możesz sprawdzić konfigurację repozytorium w /etc/apt/sources.list.d/percona-release.listpliku.

  3. Pamiętaj, aby zaktualizować lokalną pamięć podręczną:

    apt-get update
    
  4. Następnie możesz zainstalować pakiet serwera:

    apt-get install percona-server-server-5.5
    

Wysłano żądanie HTTP, oczekując na odpowiedź ... 404 nie znaleziono
— simhumileco

1
@simhumileco zmienili wersję. na dzień dzisiejszy użyj wget repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc) _all.deb, a następnie dpkg -i percona-release_0.1-4. $ (lsb_release -sc) _all.deb
— Leonel Martins
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.