el inicio del servidor mysql falló


28

Estoy ejecutando el servidor ubuntu. Cuando intenté iniciar sesión en mysql (que se estaba ejecutando), recibí el siguiente error

ERROR 2002 (HY000): Can't connect to local MySQL server through socket         '/var/run/mysqld/mysqld.sock' (2)

Pero el archivo mysqld.sock no existe dentro de la /var/run/mysqldcarpeta. Al ejecutar el ps aux | grep mysqlcomando, me di cuenta de que el servidor mysql no se estaba ejecutando.

Luego intenté reiniciar el servidor mysql usando

service mysql start
service mysql restart
/etc/init.d/mysql start

Pero, el proceso de inicio falló en los 3 casos. /var/log/mysql/mysql.logy los /var/log/mysql/mysql.errarchivos están vacíos.

Pero /var/log/error.logmuestra la siguiente información:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete


1
¿Cuál es la salida de ls /var/lib/mysql/ib_logfile*?
— jobin

ls: no se puede acceder a / var / lib / mysql / ib_logfile *: No existe tal archivo o directorio
— ananth

1
¿Es su directorio / var / lib / mysql grabable para mysql?
— Jos

1
Soy un novato en Linux. Cambié los permisos de / var / lib / mysql usando chmod 777 . ¿Puede sugerirme cómo verificar si esta no es la forma correcta?
— ananth

Respuestas:


28

Abra una terminal ( Ctrl+ Alt+ t) y haga lo siguiente:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

y comentar la línea record_buffer=64Men /etc/mysql/my.cnf [1]

y luego reinicie msyql usando:

sudo service mysql restart

(Fuente)


1
Ejecuté los comandos que mencionó ... Al ejecutar el servicio de sudo mysql restart, dio un mensaje de detención: instancia desconocida y el indicador de shell no apareció (el reinicio aún se está ejecutando desde los últimos 50 minutos)
— ananth

1
Además, ahora el registro de errores dice: -140425 15:09:11 InnoDB: el formato de archivo más alto admitido es Barracuda. 140425 15:09:12 InnoDB: Esperando a que se inicien los subprocesos de fondo 140425 15:09:13 InnoDB: 5.5.37 iniciado; número de secuencia de registro 940942258188 140425 15:09:13 [ERROR] / usr / sbin / mysqld: variable desconocida 'record_buffer = 64M' 140425 15:09:13 [ERROR] Anulando 140425 15:09:13 InnoDB: Iniciando apagado ... 140425 15:09:14 InnoDB: apagado completado; número de secuencia de registro 940942258188 140425 15:09:14 [Nota] / usr / sbin / mysqld: apagado completo
— ananth

No ... hice sudo service mysql restart.
— ananth

¿Puedes intentar hacerlo sudo service mysql start?
— jobin

¿Debo matar el proceso de reinicio de mysql que se está ejecutando? ¿Causará algún problema?
— ananth

9

Esto resolvió mi problema:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
Después de aplicar estos pasos, mi base de datos se eliminó. ¿Ahora que haré?
— Amit Yadav el

7

Resolví el problema de la siguiente manera:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

En otro contexto, lo enfrenté porque el demonio mysql no pudo iniciarse. Entonces, inicie el demonio con el comando mysqld starty luego intente iniciar el servicio.


2

Tenía el mismo mensaje de error y el mismo vacío en los archivos de registro. En mi archivo de configuración (my.cnf) había especificado que quería usar las tablas myisam, agregando esta línea en la sección [mysqld]:

default-table-type = myisam

Después de actualizar mysql, parece que esto hace que mysql no se inicie. He cambiado esto a:

default-storage-engine = myisam

Y ahora todo funciona bien.


1

También podría ayudar aumentar la RAM disponible agregando un nuevo espacio de intercambio. Los pasos están aquí

Asegúrese de crear / intercambiar archivos del tamaño más pequeño que el espacio disponible mostrado por

df -h

Por ejemplo, para mí, la salida de df- h fue:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Así que creé usando 2 G

sudo fallocate -l 2G /swapfile

Y luego solo comienza el servicio

sudo /etc/init.d/mysql restart

Espero que esto ayude. Todo lo mejor.


1

Mi solución:

Compruebe si en todos /etc/rc1.d ... /etc/rc5.d el script mysql comienza con S (Ex S10mysql) y no K AS K10mysql.

Explicación: el prefijo K se carga con stop, tipo de servicio de eliminación; y el prefijo S comienza con el parámetro de inicio.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

En mi caso, fue un problema espacial. Compruebe si le queda suficiente espacio.

de /var/log/mysql/error.logque tiene algunos consejos a partir de dos líneas:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Pude ver que es un problema espacial.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

Desde aquí, pude ver que no quedaba suficiente espacio en el servidor virtual /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Y pensé en migrar o aumentar la unidad virtual, pero primero decidí eliminar los archivos innecesarios.

Entonces, tuve que limpiar el caché y los archivos que no eran necesarios:

#apt-get clean
#apt-get -f autoremove

Luego, no olvide eliminar los archivos de registro corruptos de mysql después. Se generarían nuevamente cuando reinicie mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Verifique su servicio de servidor mysql y probablemente esté funcionando

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Caso cerrado. Espero que ayude.


0

Elimine el archivo /var/lib/mysql/.run-mysql_upgrade y debería comenzar

;)

"Con un gran poder viene una gran responsabilidad"


0

He tenido este problema cuando me puse max_allowed_packet = 0.5Men /etc/mysql/my.cnf.

Lo resolví cambiando max_allowed_packeta 1M.


0

El siguiente comando resuelve mi problema y mysql podría comenzar después (podría ser útil en algunos casos)

chown -R mysql: /var/lib/mysql
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.