Problema
Quando si tenta di avviare MySQL utilizzando systemctl non si avvia, ad esempio:
# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html
# systemctl start mysqld Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
Soluzione
Le cause possono essere molteplici. Alcuni (ma non limitati a) esempi sono:
- Un errore di battitura in un'opzione di configurazione nel file di configurazione di MySQL.
- Presenza di un'opzione non più utilizzata nel file di configurazione di MySQL.
- Autorizzazione a livello di file system errato.
Per indagare su quale errore sta causando il mancato avvio di MySQL, ci sono diverse fonti che possono essere utilizzate:
1. Il registro degli errori di MySQL
Per impostazione predefinita, si trova in /var/log/mysqld.log ma potrebbe trovarsi in una posizione diversa se si verifica un errore di log l'opzione è impostata nel file di configurazione di MySQL. Questo è il punto di partenza migliore, tuttavia, a seconda dell'errore, il processo di avvio potrebbe non essere nemmeno arrivato abbastanza lontano da scrivere nel registro degli errori di MySQL.
2. Controlla l'output di "systemctl status mysqld"
Anche l'output di "systemctl status mysqld" può essere utile per identificare la causa dell'errore.
# systemctl status mysqld
3. Il diario di sistema
Il diario systemd può aiutare ad arrivare alla causa principale dell'errore. Puoi ad esempio sfogliarlo in modo interattivo utilizzando:
# journalctl -xe
Se è necessario caricare il giornale di registrazione per farlo analizzare dal fornitore, è necessario determinare dove si trova. Questo è specifico del sistema. Ad esempio con la configurazione predefinita, il journal su CentOS/RHEL 7 può essere trovato in una sottodirectory sotto /run/log/journal/ , ad esempio /run/log/journal/1ffd55f216ea46bd82d0f144065cc29b/system.journal. Un'altra posizione potrebbe essere /var/log/journal.
Oppure puoi esportare il diario come:
# journalctl > journal.log
Una volta determinato il messaggio di errore, utilizzalo per indagare sulla causa principale.