Chciałem rzucić okiem na MySQL 5.6 na Ubuntu 14.04 z ciekawości. Na podstawie tego artykułu z pewnością wyglądało, że instalacja powinna być prosta i łatwa. Odpaliłem więc mikrosterownik AWS EC2 z systemem Ubuntu 14.04 (64-bit), zalogowałem się do mojej nieskazitelnej instancji (przez PuTTY) i wydałem następujące polecenia:
$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6
(Pierwsze dwa polecenia były ruchami desperacji, ponieważ zwykłe uruchamianie apt-get install
samemu wcześniej nie działało. Ale nawet przy wszystkich trzech poleceniach krok instalacji nadal nie działał.)
W miejscu, w którym spodziewałem się, na podstawie artykułu, o którym mowa powyżej, zobaczyć dane wyjściowe z ostatecznego polecenia:
mysql start/running, process 2355
Setting up libhtml-template-perl (2.95-1) ...
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Processing triggers for ureadahead (0.100.0-16) ...
Mam to zamiast tego:
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.6 (--configure):
subprocess installed post-installation script returned error exit status 1
Setting up libhtml-template-perl (2.95-1) ...
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Processing triggers for ureadahead (0.100.0-16) ...
Errors were encountered while processing:
mysql-server-5.6
E: Sub-process /usr/bin/dpkg returned an error code (1)
Czy ktoś może zobaczyć, co poszło nie tak?
14.04
mysql
amazon-ec2
WebLearner
źródło
źródło
Odpowiedzi:
Występujący problem wygląda tak samo jak ten raport o błędzie . Wygląda na to, że uruchomienie nie powiodło się, ponieważ domyślna konfiguracja MySQL 5.6 wymaga więcej pamięci, niż może uzyskać w mikro instancji.
Rozwiązaniem problemu wydaje się być jedno z poniższych:
max_connections
zmiennej MySQLźródło
sudo apt-get install mysql-server-5.6
. Wydaje się więc, że instancja mikro EC2 nie ma wystarczającej ilości pamięci, aby zainstalować MySQL 5.6 za pomocą apt-get!Ten sam problem występuje podczas inicjowania mojego małego VPS. Problem jest spowodowany małą pamięcią. Więc bez wydawania dodatkowych pieniędzy na zwiększenie niepotrzebnej pamięci, możesz po prostu utworzyć pliki wymiany, aby wspomóc instalację. Tak, wymiana jest powolna, ale wszystko, czego potrzebujesz, to instalacja.
W systemie Ubuntu 14.04 wykonuję następujące czynności, aby rozwiązać problem:
Utwórz plik wymiany 4G:
Zmień uprawnienia, aby tylko root mógł uzyskać dostęp i zmienić:
Zmień to:
Aktywuj:
Teraz możesz spróbować ponownie zainstalować mysql, tym razem powinien się udać. Pamiętaj tylko, aby usunąć poprzednią nieudaną instalację.
źródło
Mam ten sam problem. Chociaż miałem wystarczająco dużą pamięć 12 Gb podaną mojej maszynie wirtualnej, ale i tak wszystko się nie udawało. Po pewnym czasie okazało się, że w domyślnym apt get brakuje niektórych tłumaczeń konfiguracji i tłumaczeń narzędzi.
Repozytorium apt MySQL zapewnia prosty i wygodny sposób instalacji i aktualizacji produktów MySQL przy użyciu najnowszych pakietów oprogramowania
apt-get
. Oto, co musisz przestrzegać:Dodawanie repozytorium MySQL APT Najpierw dodaj apt repozytorium MySQL do listy repozytoriów oprogramowania systemu. Wykonaj następujące kroki:
Przejdź do strony pobierania repozytorium apt MySQL pod adresem http://dev.mysql.com/downloads/repo/apt/ .
Wybierz i pobierz pakiet wydania.
Zainstaluj pobrany pakiet wydania za pomocą następującego polecenia, zastępując nazwę pakietu specyficzną dla wersji nazwą pobranego pakietu (poprzedzona ścieżką, jeśli nie uruchamiasz polecenia w folderze, w którym znajduje się pakiet):
Pamiętaj, że ten sam pakiet działa na wszystkich obsługiwanych platformach Debian i Ubuntu.
Zaktualizuj informacje o pakiecie z repozytorium MySQL APT za pomocą następującego polecenia (ten krok jest obowiązkowy):
Instalowanie MySQL z APT
Zainstaluj MySQL za pomocą następującego polecenia:
Spowoduje to zainstalowanie pakietu dla serwera MySQL, a także pakietów dla klienta i wspólnych plików bazy danych.
Podczas instalacji w oknach dialogowych pojawiają się dwa żądania: Podaj hasło dla użytkownika root do instalacji MySQL.
Serwer MySQL jest uruchamiany automatycznie po instalacji. - Możesz sprawdzić status serwera MySQL za pomocą następującego polecenia:
Zatrzymaj serwer MySQL za pomocą następującego polecenia:
Aby zrestartować serwer MySQL, użyj następującego polecenia:
Śledziłem to http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . To działało sprawnie i pobrało wszystkie pakiety i zostało pomyślnie zainstalowane
mysql 5.6
.źródło
W moim przypadku dodałem
do
/etc/mysql/my.cnf
źródło
Wyłączenie performance_schema również oszczędza dużo pamięci. Moja pusta baza danych ma od 400 do 40 metrów przy uruchamianiu:
Dokumenty MySQL: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html
źródło
Ten problem napotkałem na Ubuntu 15.10. Dla mnie nie był to problem z pamięcią (mam 2 GB pamięci RAM i 18 GB wymiany, z czego w sumie wykorzystano tylko około 300 MB).
W moim przypadku
dpkg
szukałem/etc/mysql/conf.d
, który nie istniał (jakkolwiek/etc/mysql/mysql.conf.d
!). Ponowna instalacja mysql i ręczne utworzenie folderu/etc/mysql/conf.d
rozwiązało mój problem.Jak to się dokładnie stało? Nie mam pojęcia. Prawie nie chciałem udostępniać swojej odpowiedzi, ponieważ założę się, że to rozwiązanie jest specyficzne dla mojego komputera.
Rozwiązałem ten problem, używając narzędzia
strace
, które jest fantastyczne do tego rodzaju rzeczy, jeśli jest niewiarygodnie szczegółowe.Użyłem tego w ten sposób:
Po wciśnięciu do ctrlcpołowy
apt-get install mysql-server
musiałem biec,dpkg --configure -a
aby zakończyć instalację.Pobiegłem
strace 2>/tmp/trace dpkg --configure -a
. To już mi pięknystrace
dziennik w/tmp/trace
.Spojrzałem na kłodę, zwłaszcza na dole, gdzie zawiodła.
Zauważyłem, że próbował uzyskać dostęp
/etc/mysql/conf.d
i dostałem kod błędu ENOENT, brak takiego pliku lub katalogu .Dla każdego, kto chce spróbować, zrób to
strace 2>/tmp/trace (command)
i pozdrówENOENT
. Jak powiedziałem, to rozwiązanie jest prawdopodobnie specyficzne dla mojego komputera, ale możesz spróbować.źródło
W moim przypadku wszystko, co musiałem zrobić, to wprowadzić zmiany
my.cnf
i po prostu usunąć 2 pliki dzienników o nazwachib_logfile0
iib_logfile1
i uruchomić mysqlNie trzeba ponownie instalować mysql, wystarczy usunąć te 2 pliki dziennika i ponownie uruchomić serwer mysql
Poniżej zmiany, które wprowadziłem w
my.cnf
:źródło