MySQL en CentOS no puede iniciar el servicio

MySQL en CentOS no puede iniciar el servicio

Después de reiniciar mi servidor, no puedo iniciar MySQL:

$ sudo service mysql start $ Starting MySQL. ERROR! Manager of pid-file quit without updating file.

"/var/log/mysqld.log" muestra: 150225 21:39:49 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 150225 21:39:49 [Note] Plugin 'FEDERATED' is disabled. /usr/local/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist 150225 21:39:49 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 150225 21:39:49 InnoDB: Initializing buffer pool, size = 8.0M 150225 21:39:49 InnoDB: Completed initialization of buffer pool InnoDB: Log scan progressed past the checkpoint lsn 0 37356 150225 21:39:49 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... InnoDB: Doing recovery: scanned up to log sequence number 0 44233 150225 21:39:49 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: Apply batch completed 150225 21:39:49 InnoDB: Started; log sequence number 0 44233 150225 21:39:49 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 150225 21:39:49 mysqld_safe mysqld from pid file /var/lib/mysql/iZ23aa67ovhZ.pid ended y mi disco duro no está lleno.

aquí está el estado de /var/lib/mysql: drwxrwxrwx 2 mysql root 4096 Feb 26 16:43 . drwxr-xr-x. 21 root root 4096 Feb 25 19:38 .. -rw-rw---- 1 mysql mysql 10485760 Feb 25 19:38 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Feb 26 16:43 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Feb 25 19:38 ib_logfile1 y aquí está /etc/my.cnf: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid y no hay mysql_install_db en el servidor: bash: mysql_install_db: command not found y cuando ejecuto mysql_safe, muestra: 150226 16:58:50 mysqld_safe Logging to '/var/log/mysqld.log'. 150226 16:58:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 150226 16:58:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

¡muchas gracias!

Respuesta1

150225 21:39:49 [ERROR] Error fatal: no se pueden abrir y bloquear tablas de privilegios: la tabla 'mysql.host' no existe

Para solucionar este problema, simplemente tiene que decirle a mysql dónde buscar, no que se mueva la instalación predeterminada. Puedes hacerlo con:

mysql_install_db –user=mysql –ldata=/newlocation

Una vez que hagas eso, puedes reiniciar MySQL.

/etc/init.d/mysqld restart

Si no fuera de ayuda:

  1. MySQL desinstalado usandoyum remove mysql*
  2. Eliminado recursivamente /usr/bin/mysqly/var/lib/mysql
  3. También borré el archivo/etc/my.cnf.rmp
  4. Se utiliza ps -epara verificar los procesos y asegurarse de que mysql aún no se esté ejecutando.
  5. Servidor reiniciado conreboot
  6. Corrió yum install mysql-server. Esto también parece instalar el cliente MySQL como una dependencia.
  7. le dio propiedad a mysql y privilegios de grupo con chown -R mysql /var/lib/mysqlychgrp -R mysql /var/lib/mysql
  8. Se utiliza service mysqld startpara iniciar MySQL Daemon.

150225 21:39:49 InnoDB: ¡La base de datos no se cerró normalmente! InnoDB: iniciando la recuperación de fallos. InnoDB: Lectura de información de espacio de tabla de los archivos .ibd... InnoDB: Restauración de posibles páginas de datos a medio escribir desde el búfer de doble escritura InnoDB:...

Este es un resultado normal después de un accidente. InnoDB está diseñado para recuperarse automáticamente en estos casos, pero puede llevar algún tiempo. Generalmente minutos, pero posiblemente horas si el bloqueo ocurrió cuando tenía miles de páginas de datos modificados en la memoria y sus discos estaban lentos.

InnoDB puede recuperarse por sí solo en la mayoría de los casos, sin pérdida de datos.

Para iniciar la recuperación, primero debe utilizar la directiva 'innodb_force_recovery' dentro de /etc/my.cnf. Si no está familiarizado con esto, lea la siguiente documentación,http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html. Si está familiarizado, continúe.

A veces, InnoDB sólo sufrirá daños moderados y podrá repararse solo. Agregue “innodb_force_recovery = #” a una nueva línea en la sección [mysqld] de /etc/my.cnf. Asegúrese de reemplazar el # con la magnitud de recuperación que necesita.Si intenta utilizar algo más allá de una magnitud de 4, corre un riesgo extremo de sufrir más corrupción, lo que significa que su tiempo y esfuerzo serían en vano.En este caso, como estamos intentando la autorreparación, use solo 1 o 2. Una vez que haya agregado la nueva línea, reinicie el servidor MySQL y verifique los registros (/var/lib/mysql/server.hostname.com.err) para verificar si la instancia se reparó exitosamente.

información relacionada