MySQL no CentOS não pode iniciar o serviço

MySQL no CentOS não pode iniciar o serviço

depois de reiniciar meu servidor, não consigo iniciar o mysql:

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

"/var/log/mysqld.log" mostra: 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 e meu disco rígido não está cheio.

aqui está o status 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 e aqui 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 e não há mysql_install_db no servidor: bash: mysql_install_db: command not found e quando executo mysql_safe, ele mostra: 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

muito obrigado!

Responder1

150225 21:39:49 [ERRO] Erro fatal: Não é possível abrir e bloquear tabelas de privilégios: a tabela 'mysql.host' não existe

Para corrigir esse problema, basta informar ao mysql onde procurar, e não que a instalação padrão foi movida. Você pode fazer isso com:

mysql_install_db –user=mysql –ldata=/newlocation

depois de fazer isso, você pode reiniciar o mysql

/etc/init.d/mysqld restart

Se não ajudar:

  1. MySQL desinstalado usandoyum remove mysql*
  2. Excluído recursivamente /usr/bin/mysqle/var/lib/mysql
  3. Também excluiu o arquivo/etc/my.cnf.rmp
  4. Usado ps -epara verificar os processos para garantir que o mysql ainda não esteja em execução.
  5. Servidor reiniciado comreboot
  6. Corrido yum install mysql-server. Isso também parece instalar o cliente mysql como uma dependência.
  7. deu propriedade ao mysql e privilégios de grupo com chown -R mysql /var/lib/mysqlechgrp -R mysql /var/lib/mysql
  8. Usado service mysqld startpara iniciar o MySQL Daemon.

150225 21:39:49 InnoDB: O banco de dados não foi encerrado normalmente! InnoDB: Iniciando recuperação de falhas. InnoDB: Lendo informações de espaço de tabela dos arquivos .ibd... InnoDB: Restaurando possíveis páginas de dados escritas pela metade do doublewrite InnoDB: buffer...

Esta é a saída normal após uma falha. O InnoDB foi projetado para se recuperar automaticamente nesses casos, mas isso pode levar algum tempo. Geralmente minutos, mas possivelmente horas se a falha ocorreu quando você tinha milhares de páginas de dados modificados na memória e seus discos estão lentos.

O InnoDB pode se recuperar sozinho na maioria dos casos, sem perda de dados.

Para iniciar a recuperação, primeiro você deve usar a diretiva 'innodb_force_recovery' em /etc/my.cnf. Se você não estiver familiarizado com isso, leia a seguinte documentação,http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html. Se você conhece, por favor prossiga.

Às vezes, o InnoDB será apenas moderadamente danificado e poderá se reparar. Adicione “innodb_force_recovery = #” a uma nova linha na seção [mysqld] do /etc/my.cnf. Certifique-se de substituir o # pela magnitude da recuperação que você está precisando.Se você tentar usar qualquer coisa além da magnitude 4, você corre um risco extremo de mais corrupção, o que significa que seu tempo e esforço seriam em vão.Neste caso, como estamos tentando o auto-reparo, use apenas 1 ou 2. Depois de adicionar a nova linha, reinicie o servidor MySQL e verifique os logs (/var/lib/mysql/server.hostname.com.err) para verificar se a instância foi reparada com sucesso.

informação relacionada