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
ananth
fuente
vea si esto ayuda: serverfault.com/questions/104014/…
Rinzwind
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)

Jobin
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

usuario520064
fuente
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.

Sudheesh.MS
fuente
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.

Lars Olav Tveito
fuente
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.

Vivek
fuente
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
Sergio Abreu
fuente
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.

sukupandachu
fuente
0

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

;)

"Con un gran poder viene una gran responsabilidad"

Adrian Pule
fuente
0

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

Lo resolví cambiando max_allowed_packeta 1M.

piel de rata
fuente
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
Yusef
fuente