it-swarm.com.de

Job für mysqld.service ist fehlgeschlagen. Siehe "systemctl status mysqld.service".

Konsole sagt

[[email protected] mysql]# service mysqld start
Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

mysqld.service

[[email protected] mysql]# systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
   Loaded: loaded (/etc/rc.d/init.d/mysqld)
   Active: failed (Result: exit-code) since Sat 2017-02-18 20:59:17 IST; 36s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 9925 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)

Feb 18 20:59:16 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Starting SYSV: MySQL database server....
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal mysqld[9925]: MySQL Daemon failed to start.
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal mysqld[9925]: Starting mysqld:  [FAILED]
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: mysqld.service: control process exited, code=exited status=1
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Failed to start SYSV: MySQL database server..
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Unit mysqld.service entered failed state.
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: mysqld.service failed.

Was ich bis jetzt ausprobiert habe:

mysqld_safe --defaults-file=/etc/my.cf

chown -R mysql:mysql /var/lib/mysql

/etc/init.d/mysqld start

 /etc/init.d/mysqld stop

systemctl restart systemd-logind

der Server wurde neu gestartet

Immer noch kein Glück.

meine.cnf-Datei

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
7
Nobi

Ich habe dieses Problem heute getroffen und es mit folgenden Schritten behoben.

1, Überprüfen Sie die Protokolldatei /var/log/mysqld.log 

tail -f /var/log/mysqld.log

 2017-03-14T07:06:53.374603Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
 2017-03-14T07:06:53.374614Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory

Das Protokoll sagt, dass es keine Datei oder kein Verzeichnis gibt /var/run/mysqld/mysqld.pid

2, Erstellen Sie das Verzeichnis /var/run/mysqld

mkdir -p /var/run/mysqld/

3, Starten Sie den mysqld erneut service mysqld start, aber schlagen Sie immer noch fehl, überprüfen Sie das Protokoll erneut /var/log/mysqld.log

2017-03-14T07:14:22.967667Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied)
2017-03-14T07:14:22.967678Z 0 [ERROR] Can't start server: can't create PID file: Permission denied

Die Erlaubnis wurde verweigert.

4. Erteilen Sie die Berechtigung zu mysql chown mysql.mysql /var/run/mysqld/

5. Starten Sie die mysqld neu

# service mysqld restart
Restarting mysqld (via systemctl):                         [  OK  ]
5
Adam Deng

Dies sind die Schritte, die ich unternommen habe, um dies zu korrigieren:

Sichern Sie Ihre my.cnf-Datei in/etc/mysql und entfernen oder benennen Sie sie um

Sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak

Entfernen Sie den Ordner /etc/mysql/mysql.conf.d/ mit

Sudo rm -r /etc/mysql/mysql.conf.d/

Vergewissern Sie sich, dass Sie keine my.cnf-Datei an einem anderen Ort (ich habe es in meinem Heimatverzeichnis!) Oder in /etc/alternatives/my.cnf verwendet haben

Sudo find / -name my.cnf

Jetzt alles neu installieren 

Sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
Sudo apt install mysql-server

Falls Ihr Syslog einen Fehler wie "mysqld: Kann Verzeichnis von '/etc/mysql/conf.d/' nicht lesen" "anzeigen, erstellen Sie einen symbolischen Link:

Sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d

Dann sollte der Dienst mit Sudo-Dienst mysql start starten können.

Ich hoffe es klappt

1
CJ-UNIq

In meinem speziellen Fall trat der Fehler auf, weil /var/log/mysql mit mysql-server-Paket 5.7.21-1 unter Debian-basierter Linux-Distribution fehlt. Nachdem strace und Sudo /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid ausgeführt wurde (was der systemd-Dienst tatsächlich ausführt), stellte sich heraus, dass das Problem auf Folgendes zurückzuführen ist:

2019-01-01T09:09:22.102568Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory

Ich habe kürzlich den Inhalt mehrerer Verzeichnisse in /var/log entfernt, sodass es keine Überraschung war. Die Lösung bestand darin, das Verzeichnis zu erstellen und das Verzeichnis mysql user wie in

$ Sudo mkdir /var/log/mysql
$ Sudo chown -R mysql:mysql /var/log/mysql

Nachdem ich das getan habe, habe ich mich glücklich mit Sudo mysql -u root angemeldet und mit dem alten und bekannten mysql> Prompt begrüßt

0

Hatte das gleiche Problem. Gelöst wie unten angegeben . Befehl verwenden:

Sudo tail -f /var/log/messages|grep -i mysql

um zu prüfen, ob die SELinux-Richtlinie das Problem verursacht. Wenn ja, prüfen Sie zunächst, ob die SELinux-Richtlinie mit dem Befehl #sestatus aktiviert ist. Wenn es aktiviert ist, deaktivieren Sie es . So deaktivieren Sie:

  1. # vi /etc/sysconfig/selinux 
  2. Ändern Sie "SELINUX = erzwingen" in "SELINUX = deaktiviert". 
  3. linux neu starten 
  4. überprüfen Sie mit sestatus und es sollte "disabled" angezeigt werden

Deinstallieren Sie mysql und installieren Sie es erneut. Es sollte funktionieren.

0
rajat saha