it-swarm.com.de

Warum ist die Installation von MySQL 5.6 unter Ubuntu 14.04 fehlgeschlagen?

Ich wollte aus Neugier einen Blick auf MySQL 5.6 auf Ubuntu 14.04 werfen. Und basierend auf diesem Artikel sah es auf jeden Fall so aus, als ob die Installation einfach und unkompliziert sein sollte. Daher habe ich einen AWS EC2-Mikroserver mit Ubuntu 14.04 (64-Bit) gestartet, mich bei meiner ursprünglichen Instanz angemeldet (über PuTTY) und die folgenden Befehle ausgegeben:

$ Sudo apt-get update
$ Sudo apt-get build-dep mysql-server-5.6
$ Sudo apt-get install mysql-server-5.6

(Die ersten beiden Befehle waren verzweifelte Aktionen, da das einfache Ausführen von apt-get install zuvor nicht funktioniert hatte. Aber selbst mit allen drei Befehlen funktionierte der Installationsschritt immer noch nicht.)

An dem Punkt, an dem ich basierend auf dem oben genannten Artikel erwartet hatte, diese Ausgabe des letzten Befehls zu sehen:

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) ...  

Ich habe stattdessen folgendes erhalten:

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)

Kann jemand sehen, was schief gelaufen ist?

30
WebLearner

Das Problem, das Sie haben, sieht genauso aus wie dieser Fehlerbericht . Das Fehlschlagen des Startvorgangs scheint darauf zurückzuführen zu sein, dass die Standardkonfiguration von MySQL 5.6 mehr Speicher benötigt, als in Ihrer Mikroinstanz verfügbar ist.

Die Lösung für den Fehler scheint darin zu bestehen, eine der folgenden Aktionen auszuführen:

  • Erhöhen Sie die Speicherkapazität in Ihrer EC2-Instanz
  • Setzen Sie einen kleineren Wert für die max_connections -Variable von MySQL
22
Mike Miller

Ich habe das gleiche Problem festgestellt, als ich meinen kleinen VPS initialisierte. Das Problem wird durch einen kleinen Speicher verursacht. Ohne zusätzliches Geld für die Erhöhung des nicht benötigten Arbeitsspeichers können Sie einfach Auslagerungsdateien erstellen, um die Installation zu erleichtern. Ja, der Swap ist langsam, aber alles, was Sie brauchen, ist die Installation.

Unter Ubuntu 14.04 behebe ich das Problem folgendermaßen:

Erstellen Sie eine 4G-Auslagerungsdatei:

Sudo fallocate -l 4G /swapfile

Ändern Sie die Berechtigung, damit nur root auf Folgendes zugreifen und es ändern kann:

Sudo chmod 600 /swapfile

Lass es tauschen:

Sudo mkswap /swapfile

Aktivieren Sie:

Sudo swapon /swapfile

Jetzt können Sie versuchen, mysql erneut zu installieren. Diesmal sollte dies erfolgreich sein. Denken Sie daran, die zuvor fehlgeschlagene Installation zu entfernen, bevor Sie dies tun.

24
Arthur Wang

Ich bin auf dasselbe Problem gestoßen. Ich hatte zwar genügend Speicherplatz (12 GB) für meine VM, aber die Dinge scheiterten wie in Frage. Nachdem ich einige Zeit damit verbracht hatte, herauszufinden, dass in apt get einige der Konfigurations- und Tool-Übersetzungspakete fehlten.

Das MySQL apt-Repository bietet eine einfache und bequeme Möglichkeit, MySQL-Produkte mithilfe von apt-get mit den neuesten Softwarepaketen zu installieren und zu aktualisieren. Folgendes müssen Sie beachten:

  1. Hinzufügen des MySQL APT -Repositorys Fügen Sie zunächst das MySQL apt-Repository zur Software-Repository-Liste Ihres Systems hinzu. Folge diesen Schritten:

    • Gehen Sie zur Download-Seite für das MySQL-Repository unter http://dev.mysql.com/downloads/repo/apt/ .

    • Wählen Sie das Release-Paket aus und laden Sie es herunter.

    • Installieren Sie das heruntergeladene Release-Paket mit dem folgenden Befehl und ersetzen Sie den versionsspezifischen Paketnamen durch den Namen des heruntergeladenen Pakets (mit vorangestelltem Pfad, wenn Sie den Befehl nicht in dem Ordner ausführen, in dem sich das Paket befindet):

      Sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Beachten Sie, dass das gleiche Paket auf allen unterstützten Debian- und Ubuntu-Plattformen funktioniert.

    • Während der Installation des Pakets werden Sie aufgefordert, die Versionen des MySQL-Servers und anderer Komponenten (z. B. der MySQL Workbench) auszuwählen, die Sie installieren möchten. Wenn Sie sich nicht sicher sind, welche Version Sie auswählen sollen, ändern Sie nicht die für Sie ausgewählten Standardoptionen. Sie können auch keine auswählen, wenn eine bestimmte Komponente nicht installiert werden soll. Nachdem Sie die Auswahl für alle Komponenten getroffen haben, klicken Sie auf OK, um die Konfiguration und Installation des Release-Pakets abzuschließen.

    Sie können Ihre Auswahl für die Versionen später jederzeit ändern.
    Anweisungen finden Sie unter Auswählen einer Major Release-Version.

    • Aktualisieren Sie die Paketinformationen aus dem MySQL-Repository APT mit dem folgenden Befehl (dieser Schritt ist obligatorisch):

      Sudo apt-get update
      
  2. Installation von MySQL mit APT

    • Installieren Sie MySQL mit folgendem Befehl:

      Sudo apt-get install mysql-server
      

Dadurch werden das Paket für den MySQL-Server sowie die Pakete für den Client und für die gemeinsamen Datenbankdateien installiert.

Während der Installation werden zwei Anforderungen von den Dialogfeldern gestellt: Geben Sie ein Kennwort für den Root-Benutzer für Ihre MySQL-Installation ein.

  1. Starten und Stoppen des MySQL Servers

Der MySQL-Server wird nach der Installation automatisch gestartet. - Sie können den Status des MySQL-Servers mit dem folgenden Befehl überprüfen:

Sudo service mysql status
  • Stoppen Sie den MySQL-Server mit dem folgenden Befehl:

    Sudo service mysql stop
    
  • Verwenden Sie den folgenden Befehl, um den MySQL-Server neu zu starten:

    Sudo service mysql start
    

Ich folgte diesem http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . Dies hat reibungslos funktioniert und alle Pakete heruntergeladen und mysql 5.6 erfolgreich installiert.

3
Ritesh

In meinem Fall habe ich hinzugefügt

innodb_buffer_pool_size = 20M

zum /etc/mysql/my.cnf

2
maxkoryukov

Durch Deaktivieren des performance_schema wird außerdem viel Speicherplatz gespart. Meine leere Datenbank wechselt beim Start von 400 auf 40 m:

performance_schema=0

MySQL-Dokumente: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html

1
dannrob

Ich bin auf dieses Problem unter Ubuntu 15.10 gestoßen. Für mich war es kein Speicherproblem (ich habe 2 GB RAM und 18 GB Swap, von denen insgesamt nur etwa 300 MB verwendet wurden).

In meinem Fall suchte dpkg nach /etc/mysql/conf.d, das nicht existierte (jedoch /etc/mysql/mysql.conf.d!). Neuinstallation von mysql und manuelle Erstellung des Ordners /etc/mysql/conf.d mein problem gelöst.

Wie genau ist das passiert? Ich habe keine Ahnung. Ich wollte meine Antwort fast nicht teilen, da diese Lösung für meinen Computer spezifisch ist.

Ich habe dieses Problem mit dem Hilfsprogramm strace gelöst, das für diese Art von Dingen fantastisch ist, wenn auch unglaublich ausführlich.

Ich habe es so benutzt:

  • Nach dem Drücken von ctrlc In der Mitte von apt-get install mysql-server musste ich dpkg --configure -a ausführen, um die Installation abzuschließen.

  • Ich habe strace 2>/tmp/trace dpkg --configure -a ausgeführt. Das hat mich zu einem netten strace Log bei /tmp/trace gemacht.

  • Ich schaute durch das Protokoll, vor allem unten, wo es fehlschlug.

  • Ich bemerkte, dass versucht wurde, auf /etc/mysql/conf.d zuzugreifen, und bekam den Fehlercode ENOENT , keine solche Datei oder kein solches Verzeichnis .

Wenn Sie dies ausprobieren möchten, führen Sie die Funktion strace 2>/tmp/trace (command) aus und suchen Sie nach ENOENT. Wie gesagt, diese Lösung ist wahrscheinlich spezifisch für meinen Computer, aber vielleicht möchten Sie es ausprobieren.

1
apricot boy

In meinem Fall musste ich nur einige Änderungen an my.cnf vornehmen und nur zwei Protokolldateien mit den Namen ib_logfile0 und ib_logfile1 löschen und mysql starten

service mysql start

Sie müssen mysql nicht neu installieren, löschen Sie einfach diese 2 Protokolldateien und starten Sie mysql server neu

Die folgenden Änderungen, die ich in my.cnf vorgenommen habe:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 
0
Lavina Chitara