Fehler beim Installieren von mySql unter Ubuntu 16.04

15

Ich habe die Anweisungen auf dieser Seite befolgt, um mysql unter Ubuntu 16.04 zu installieren.

Ich bin auf der Hälfte der Seite im Abschnitt "MySQL installieren und konfigurieren" angelangt und führe den Befehl aus sudo apt-get install mysql-server. Ich habe einen Fehler gefunden. Hier ist die Ausgabe dieses Fehlers in meinem Terminal:

Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 41515 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-common (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-common (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 41563 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Dies ist das erste Mal, dass ich einen Server einrichte und auch mysql installiere. Ich bin mir nicht sicher, ob dies eine mögliche Ursache für den Fehler ist, aber ich hatte zuvor versucht, mysql zu installieren, aber nicht den LAMP-Prozess befolgt (ich bin ein Neuling, der das herausfindet). Das war erfolglos und ich musste deinstallieren.

Darren Haynes
quelle
Willkommen bei AskUbuntu. In Ihrem Protokoll befindet sich eine Zeile Access denied for user 'debian-sys-maint'@'localhost'. Woher kommt dieser Benutzer? Ich würde nicht erwarten, es auf einem Ubuntu-System zu finden.
guntbert
Hallo guntbert - mit ein wenig suchen scheint es seine debian.cnfdatei. Ich fand dieses stackoverflow.com/questions/11644300/… - und die Antwort betrachtend, die 47 Punkte erhielt (nicht die angenommene Antwort), gibt es eine Kennwortinkongruenz. Ich probiere es aus - erfolglos, da ich nicht weiß, welches Passwort was ist!
Darren Haynes
Diese Antwort löst das Problem für mich, ohne
MySQL zu löschen

Antworten:

17

Diese Antwort ist auch in Antwort auf 16.04 Upgrade kaputt MySQL-Server, aber die kann ich nicht beantworten, da der Administrator es auf 10 Ruf gesperrt.

Der Fehler in APT tritt während des Upgrades von Ubuntu auf 16.04 (xenial) und MySQL von 5.5 auf 5.7 auf. Aufgrund einiger Verpackungsprobleme endet das APT-Upgrade in der Schwebe, da das Post-Installationsskript von MySQL-Server-5.7 nicht abgeschlossen werden kann.

Führen Sie die folgenden Schritte aus, um das Problem zu beheben:

  1. apt purge mysql-server und apt autoremovealle Spuren des alten MYSQL zu reinigen. Die Datenbankdaten werden nicht zerstört.
  2. Alles aus dem /etc/mysqlVerzeichnis entfernen .
  3. Stellen Sie sicher, dass keine alten MySQL-Pakete mehr installiert sind: dpkg -l | grep mysql
  4. apt install mysql-server installieren

Wenn diese Schritte mit derselben unvollständigen Installation enden, versuchen Sie es mit dem nächsten Schritt:

  1. Tail -n 20 /var/log/mysql/error.log
  2. Die Fehler könnten a. falsches Passwort für debian-sys-maint b. keine Erinnerung für Innodb

Lösung 2a: Sie müssen die MySQL-Systemtabellen von 5.5 auf 5.7 aktualisieren

Bearbeiten Sie my.cnf so, dass unter '[mysqld]' die Zeile "Skip-Grant-Tables" service mysql start, undmysql_upgrade --force -u root -p

Lösung 2b: Sie haben nicht genügend Arbeitsspeicher für den Mysql Innodb-Pool (befinden Sie sich auf einem Server mit geringer Größe?)

Bearbeiten Sie my.cnf so, dass unter '[mysqld]' die Zeile innodb_buffer_pool_size = 20M steht

Der Standard-Innodb-Pool ist 128 MB, was in einer 512-MB-VM eng ist

Führen Sie die Nachinstallation erneut durch, um den APT-Fehler zu beheben

dpkg --configure -a
Kaceo
quelle
Wird es Datenbanken löschen oder wird es sicher bleiben?
Thirumal
5

Vollständiges Entfernen von MySQL und Neuinstallation war die Lösung, zu der ich schließlich gekommen bin. Obwohl ich einmal erfolglos versucht hatte, zu deinstallieren und neu zu installieren (was mich dazu brachte, diese Frage zu stellen). Ich habe eine gründlichere Deinstallation versucht, nachdem ich den Rat auf dieser Seite gefunden habe: Deinstalliere MySQL vollständig

Befolgen Sie die dortigen Deinstallationsanweisungen und installieren Sie es erneut, um das Problem zu beheben.

Darren Haynes
quelle
5

Eine andere gute Lösung:

sudo apt-get purge mysql* && sudo apt-get install mysql-server
Pat McSherry
quelle
3

Das hat bei mir funktioniert:

sudo apt-get remove --purge mysql*

Dieser Befehl wird Sie fragen , ob Sie möchten Ihre Datenbanken ENTFERNEN aus /var/lib/mysqlund wird auch alle anderen Instanzen von MySQL entfernen!

So machen Sie eine BACKUP Ihrer Datenbanken zuerst!

Danach konnte ich die Datenbank mit dem folgenden Befehl installieren:

sudo apt-get install mysql-server
Michal Przybylowicz
quelle
1

Versuche alle Pakete und Dateien zu entfernen und installiere dann den "mysql-server" neu

sudo apt-get remove --purge mysql-\*
sudo rm -rf /var/lib/mysql

sudo apt-get install mysql-server 
Spl2nky
quelle
1

Zuerst müssen Sie alle Pakete von MySQL-Server entfernen:

sudo rm -rf /var/lib/mysql

Dann installieren Sie:

sudo apt-get install lamp-server^

Oder Sie können tun:

sudo apt-get install mysql-server
Tarunkant Gupta
quelle
1
Bitte posten Sie nicht rm -rf ohne zu sagen, welche Art von Informationen dieser Befehl zerstören wird.
Brian Ng