MySQL no pudo reiniciarse en Ubuntu 16.04

14

Estoy tratando de reiniciar MySQL después de guardar un script. Los estados de error

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

Cuando corro systemctl status mysql.serviceesto es lo que obtengo:

Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code) since Isn 2016-09-26 17:15:28 MYT; 17s ago
  Process: 17478 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 17474 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 17478 (code=exited, status=1/FAILURE);         : 17479 (mysql-systemd-s)
   CGroup: /system.slice/mysql.service
           └─control
             ├─17479 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─17516 sleep 1

No estoy seguro de por dónde empezar a arreglar esto.

Este es el script que guardé antes de reiniciar mysql:

[mysqld]
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'

Correr journalctl -xe | tail -20me da esto:

Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037709Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037798Z 0 [Warning] Changed limits: max_connections: 214 (requested 350)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037809Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 2000)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.187886Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.189296Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.15-0ubuntu0.16.04.1-log) starting as process 21937 ...
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191216Z 0 [ERROR] You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191242Z 0 [ERROR] Aborting
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191255Z 0 [Note] Binlog end
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191300Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
Sep 26 17:46:29 guest systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Sep 26 17:46:32 guest NetworkManager[878]: <info>  [1474883192.2910] device (eth0): Lowering IPv6 MTU (9000) to match device MTU (1500)

Correr ulimit && ulimit -Same da:

unlimited
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128071
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128071
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
Edd
fuente
1
¿Puedes agregar el resultado de journalctl -xe | tail -50tu pregunta?
LD James
@LDJames toda la salida? Es bastante grande. ¿O son solo los últimos bits?
Edd
La salida será de 50 líneas. En realidad, 15 o 20 líneas deberían ser suficientes. Puedes cambiar el -50a -15. Solo quería asegurarme de incluir la línea donde está ocurriendo el problema real.
LD James
@LDJames Ya veo, así que para eso está el comando de cola. He agregado una journalctl -xe | tail -20salida.
Edd
2
¿Qué pasa con el mensaje "ERROR: Ha habilitado el registro binario ..."? ¿Pretendías hacer eso? MySQL espera una identificación de servidor allí, que solo sé por configuraciones maestro-esclavo.
Jos

Respuestas:

8

Error fatal:

MYQL no se inicia porque, como lo indica la salida de Journalctl, but you haven't provided the mandatory server-id. agregue la identificación obligatoria como se indica en el código a continuación.

/etc/mysql/mysql.conf.d/mysqld.cnf
Cambiar de:

log-bin=mysql-bin
binlog-format = 'ROW'

Cambiar a:

server-id=master-01
log-bin=mysql-bin
binlog-format = 'ROW'

Esto hará que su servidor se ejecute mientras aborda el formato adecuado de su registro deseado.

advertencias no fatales:

Para el límite de archivos abiertos de su error, deberá disminuir la demanda en la configuración que editó o aumentar los límites del sistema con:

/etc/security/limits.conf

* soft nofile [new number]
* hard nofile [new number]

La primera columna describe a QUIÉN debe solicitar el límite. ' ' es un comodín, es decir, todos los usuarios. Para aumentar los límites de root, debe ingresar explícitamente 'root' en lugar de ' '.

Tomado de:
/ubuntu//a/162230/29012

LD James
fuente
¡Trabajó! ¿Es por declarar explícitamente que es el dispositivo maestro? Traté de poner server-id = 1antes de esto pero no funcionó.
Edd
¿en qué archivo deberían cambiar estas cosas?
Vijay Sharma
Para la mysqlconfiguración editar /etc/mysql/mysql.conf.d/mysqld.cnf. Para el sistema de open files limitvistazo a: /etc/security/limits.conf . Actualizaré mi respuesta con esta información un poco más tarde. ¿Me puede avisar si su problema se resuelve? De esta manera puedo incluir cualquier otra información pertinente en la respuesta.
LD James
2

Obtuve el mismo error, pero en mi caso simplemente el disco estaba lleno. Asegúrese también de verificar esto.

df -h --total
xinxin
fuente
+1 Esto fue para mí. Libere espacio e inicie el servicio.
Saif
0

Resuelva el problema:

  1. Agregar archivo de intercambio
  2. Agregar innodb_buffer_pool_size = 20Mal archivo de configuración /etc/mysql/my.cnfasegurándose de que esté en un grupo
Emma
fuente
0

Mi problema es que la IP del host ha cambiado.

Así que edite la entrada bind-addressen /etc/mysql/my.cnfla correcta.

yangsibai
fuente