Wie erstelle ich eine Systemd-Service-Unit-Konfigurationsdatei für den MySQL-Server?

Wie erstelle ich eine Systemd-Service-Unit-Konfigurationsdatei für den MySQL-Server?

Aktualisieren Ich konnte die Datei mysqld.service erstellen, indem ich /etc/systemd/system exist verwendete, wie von Robert Longson vorgeschlagen

Jetzt hat sich mein Problem geändert. Wenn ich den Dienst starte, schlägt er fehl. Ich habe es ausgeführt systemctl status mysqld.serviceund hier ist die Ausgabe:

   Loaded: loaded (/etc/systemd/system/mysqld.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-03-29 19:01:25 CDT; 38s ago
     Docs: man:mysqld(7)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 9251 ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid
mysqld.service: Service hold-off time over, scheduling restart.
mysqld.service: Scheduled restart job, restart counter is at 5.
Stopped MySQL Server.
mysqld.service: Start request repeated too quickly.
mysqld.service: Failed with result 'exit-code'.
mysqld.service: Failedto start MySQL Server

Ich versuche, MySQL Server 5.7 nach der Installation zum ersten Mal mit systemd zu starten. Im Handbuch steht, dass ich eine Konfigurationsdatei in /usr/lib/systemd/system erstellen soll.aber dieses Unterverzeichnis existiert nicht(Ich verwende Ubuntu 18.04). Ich folge dieser Anleitung:

https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-post-install.html#secure-deployment-systemd-startup

So konfigurieren Sie die MySQL-Installation für die Arbeit mit systemd:

  1. Fügen Sie eine Konfigurationsdatei für die systemd-Diensteinheit mit Details zum MySQL-Dienst hinzu. Die Datei heißt mysqld.service und befindet sich im Verzeichnis /usr/lib/systemd/system.
shell> cd /usr/lib/systemd/system
shell> touch mysqld.service
shell> chmod 644 mysqld.service

Da ich das Unterverzeichnis „system“ von systemd nicht habe, habe ich einfach die Datei mysql.service erstelltdirektin /usr/lib/systemd. Nachdem ich den Rest der Anweisungen befolgt hatte, kam ich zu:

shell> systemctl start mysqld

aber es schlug fehl mit:

Failed to enable unit: Unit file mysqld.service does not exist.

Kann mir bitte jemand erklären, was ich falsch gemacht habe? Danke.

Antwort1

Servicedateien befinden sich tatsächlich in /etc/systemd/system und nicht in /usr/lib/systemd/system

Wenn Sie herausfinden möchten, warum Ihr Dienst fehlschlägt, können Sie entweder Folgendes versuchen systemctl status mysqldoder für ein vollständigeres Protokoll beispielsweise im Befehl „journalctl“ nachsehen journalctl -u mysqld -S today.

verwandte Informationen