Ich versuche, mysql-server-5.7 auf Kubuntu 16.04 zu installieren, habe aber Probleme.
sudo apt install mysql-server
gibt die folgende Ausgabe aus.
Setting up mysql-server-5.7 (5.7.18-0ubuntu0.16.04.1) ...
Renaming removed key_buffer and myisam-recover options (if present)
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since ons 2017-05-17 09:48:39 CEST; 10ms ago
Process: 13622 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 13621 ExecStart=/usr/sbin/mysqld (code=exited, status=2)
Process: 13612 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 13621 (code=exited, status=2)
maj 17 09:48:39 anis systemd[1]: Failed to start MySQL Community Server.
maj 17 09:48:39 anis systemd[1]: mysql.service: Unit entered failed state.
maj 17 09:48:39 anis systemd[1]: mysql.service: Failed with result 'exit-code'.
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
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Und wenn journalctl -xe
ich versuche, Fehler durch Ausführen zu beheben, erhalte ich eine Ausgabe wie die folgende, was darauf hinweist, dass AppArmor mir Probleme bereitet.
maj 17 09:53:14 anis systemd[1]: Starting MySQL Community Server...
-- Subject: Unit mysql.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysql.service has begun starting up.
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:240): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:241): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:242): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.658:243): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis systemd[1]: mysql.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Wie könnte ich dieses Problem lösen?
/var/log/mysql/error.log
. MySQL sollte weiterhin ausgeführt werden können, auch wenn es nicht auf die obigen Dateien / proc und / sys zugreifen kann.Antworten:
Sie müssen Ihre Apparmor-Konfiguration bearbeiten, damit MySQL auf diese Dateien zugreifen kann. In den Protokollnachrichten wird angegeben, dass
/usr/sbin/mysqld
read (r
) - Zugriff zum Öffnen erforderlich/proc/14767/status
ist/sys/devices/system/node/
(abschließender Schrägstrich, da das Verzeichnis gelesen werden soll), und/proc/14767/task/14767/mem
. Die zu bearbeitende Datei lautet/etc/apparmor.d/usr.sbin.mysqld
.In meinem Fall habe ich das Problem gelöst, indem ich diese Zeilen irgendwo in der Mitte eingefügt habe (mit jeweils zwei Leerzeichen davor):
(Beachten Sie den abschließenden Schrägstrich für die zweite Zeile.)
Versuchen Sie anschließend, MySQL zu starten. Wenn weitere Fehler auftreten, fügen Sie auch diese Dateien hinzu und versuchen Sie es erneut.
Hier ist eine Antwort, die ich an anderer Stelle auf dieses Problem gegeben habe.
quelle
apparmour
Einstellungen manuell bearbeiten , um sie zu installieren?mysql
Wenn dies der Fall ist, liegt ein Problem vor./proc/*/status r
ist unnötig offen. Apparmor verfügt über Matcher für das aktuelle Prid, sodass Sie dies folgendermaßen tun können:@{PROC}/@{pid}/status r,
Möglicherweise möchten Sie auch auf Wildcards zugreifen,node*/meminfo
wenn Sie NUMA-Unterstützung haben / mehr als eine CPU für den Computer verfügbar ist .sudo service apparmor restart
/etc/apparmor.d/local/user.sbin/mysqld
stattdessen zu verwenden, um Konflikte mit Standardprofilaktualisierungen zu vermeiden. Es ist bereits im Standardprofil enthaltenMöglicherweise: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739846. Versuchen Sie es mit
wenn es nicht hilft:
um dein mysql komplett zu entfernen und neu zu installieren Warnung: Wenn du Datenbanken hast, werden diese entfernt.
quelle
exit 0
am Ende. Ich habe versucht, mysql-server zu bereinigen und neu zu installieren, was nicht geholfen hat. Ich habe gerade versucht, mysql-common neu zu installieren (ohne es zu löschen), was auch nicht geholfen hat. Wenn ich es lösche, muss ich viele Pakete deinstallieren, die davon abhängen, wovor ich ein bisschen Angst habe.sudo apt remove --purge mysql-*
, um alle MySQL-Dinge vollständig zu entfernen (ich habe Version 5.7), und dann getansudo apt install akonadi-server mysql-client mysql-server
, aber das Ergebnis ist immer noch das gleiche. Ich erhalte weiterhin dieselbe Fehlermeldung undjournalctl -xe
zeige ein AppArmor-Problem wie oben an.Ich habe dieses Problem damit gelöst.
Bearbeiten Sie /etc/apparmor.d/local/usr.sbin.mysqld
Fügen Sie diese Zeilen hinzu.
Apparmor-Dienst neu laden
quelle
In meinem Fall war der Versuch, mysql-server-5.7 unter Ubuntu 16.04 zu installieren, nachdem ich die obigen Antworten verwendet hatte:
sudo apt install mysql-server
sudo apt install mysql-server
erneut aus, um die Installation fortzusetzenInstallation abgeschlossen.
quelle
stop mysql-server
rm /var/lib/mysql/ib_logfile*
restart mysql
quelle
{}
für Code, um die Lesbarkeit zu verbessern. Sie können Ihre Antwort bearbeiten.ib_logfile*
Dateien umbenannt und habeapt upgrade
, als apt zu mysql kam, die folgende Ausgabe bekommenmysql_upgrade: [ERROR] 1812: Tablespace is missing for table mysql.plugin