Uma história construída com confiança
MM HOSPEDAGEM

Tecnologia e infraestrutura acompanhando o crescimento dos nossos clientes.

Nossa história continua
M M H O S P E D A G E M

Evoluir não é apagar o passado.

Uma nova identidade

Evoluímos.

A experiência e a confiança da MMHospedagem agora ganham uma marca preparada para o futuro.

A MMHospedagem agora é

Tecnologia que impulsiona.

A mesma confiança, agora com uma estrutura ainda mais preparada para acompanhar sua empresa.

Preparando a nova experiência
0800 490 1900
Artigo da base MVO

Como corrigir casos de corrupção do InnoDB para os bancos de dados MySQL no Plesk para Windows?

Conteúdo técnico, orientações práticas e apoio para acelerar sua operação com a MVO.

Base de conhecimento Autoatendimento Suporte técnico
Leitura objetiva e pronta para compartilhar

Imprima este material ou avance para o suporte humano caso precise de acompanhamento em um caso específico.

Sintomas

O servidor Plesk SQL não pode ser iniciado com o seguinte erro:

Função incorreta (código de erro 1) ao iniciar o serviço PleskSQLServer em (service::startStopService linha 997)

 


Erro 1067: O processo foi encerrado inesperadamente, Código de exceção: 0xc0000005

O MySQL no Windows está travando com o seguinte erro:

Nome do aplicativo com falha: mysqld.exe, versão: 5.6.36.0, registro de data e hora: 0x58ccdb65
Nome do módulo com falha: mysqld.exe, versão: 5.6.36.0, registro de data e hora: 0x58ccdb65
Código de exceção: 0x80000003 Compensação de
falha: 0x00000000002bb162
ID do processo com falha: 0x17 64
Falha hora de início do aplicativo: 0x01d4639065120bae
Caminho do aplicativo com falha: C:\Arquivos de programas\MySQL\MySQL Server 5.6\bin\mysqld.exe
Caminho do módulo com falha: C:\Arquivos de programas\MySQL\MySQL Server 5.6\bin\mysqld.exe
ID do relatório: f33b3065-14ac-4735-b77c-3653d732bef3

O seguinte pode ser observado no %plesk_dir%\databases\mysql\data\*.err arquivo:

InnoDB: Corrupção do diretório da página: ínfimo não apontado para
InnoDB: Despejo de página em ascii e hex (16384 bytes):
len 16384; hexadecimal 00.....000; asc ;
InnoDB: Fim do despejo de página

 


[ERRO] InnoDB: Página [id da página: espaço=0, número da página=237] número de sequência de log 1737623713 está no futuro! Número de sequência de log do sistema atual 1704662866.
[ERRO] InnoDB: Seu banco de dados pode estar corrompido ou você pode ter copiado o tablespace InnoDB, mas não os arquivos de log do InnoDB. Consulte http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html para obter informações sobre como forçar a recuperação.

 


[ERRO] InnoDB: Não é possível criar arquivos de log porque os arquivos de dados estão corrompidos ou o banco de dados não foi encerrado corretamente após a criação dos arquivos de dados.

Caso seja o serviço PleskSQL, o Plesk está inacessível com:

ERROR 500
Zend_Db_Adapter_Exception
SQLSTATE[HY000] [2002] Nenhuma conexão pôde ser feita porque a máquina de destino a recusou ativamente.

As seguintes mensagens podem ser encontradas em Visualizador de Eventos > Logs do Windows > Aplicativo :

  • InnoDB: Ignorando o redo log devido à falta de MLOG_CHECKPOINT entre o ponto de verificação 252683671 e o final 252687827. Para obter mais informações, consulte o Centro de Ajuda e Suporte em http://www.mysql.com.
    InnoDB: Inicialização do plug-in interrompida com erro Erro genérico Para obter mais informações, consulte o Centro de Ajuda e Suporte em http://www.mysql.com.
    A função init do plug-in 'InnoDB' retornou um erro. Para obter mais informações, consulte o Centro de Ajuda e Suporte em http://www.mysql.com.
    O registro do plug-in 'InnoDB' como um STORAGE ENGINE falhou. Para obter mais informações, consulte o Centro de Ajuda e Suporte em http://www.mysql.com.

 


Nome do aplicativo com falha: mysqld.exe, versão: 5.5.52.0, registro de data e hora: 0x57c0337c
Nome do módulo com falha: mysqld.exe, versão: 5.5.52.0, registro de data e hora: 0x57c0337c
<..>
Caminho do aplicativo com falha: C:\Arquivos de Programas ( x86)\Parallels\Plesk\MySQL\bin\mysqld.exe
Caminho do módulo com falha: C:\Arquivos de programas (x86)\Parallels\Plesk\MySQL\bin\mysqld.exe
ID do relatório: 3ec05b88-c439-11e8-8102-005056b17492
Nome completo do pacote com falha:
ID do aplicativo relativo ao pacote com falha:

A atualização do Plesk falha com o próximo erro:

ERRO 2013 (HY000) na linha 275: Conexão perdida com o servidor MySQL durante a consulta

As seguintes informações são encontradas no %plesk_dir%MySQL\Data\*.errarquivo:

InnoDB: Inicialização concluída do buffer pool
InnoDB: Erro: soma de verificação incompatível no arquivo de dados .\ibdata1
InnoDB: Não foi possível abrir ou criar arquivos de dados.
InnoDB: Se você tentou adicionar novos arquivos de dados e falhou aqui,
InnoDB: agora você deve editar innodb_data_file_path em my.cnf de volta
InnoDB: para o que era e remover os novos arquivos ibdata InnoDB criou
InnoDB: nesta tentativa falhada. O InnoDB apenas escreveu aqueles arquivos cheios de
InnoDB: zeros, mas ainda não os usou de forma alguma. Mas tenha cuidado: não
InnoDB: remova arquivos de dados antigos que contêm seus dados preciosos!
[ERRO] A função init do plug-in 'InnoDB' retornou um erro.
[ERRO] Falha no registro do plug-in 'InnoDB' como STORAGE ENGINE.
[ERRO] Mecanismo de armazenamento desconhecido/sem suporte: INNODB
[ERRO] Abortando

Causa

InnoDB corrupção.

A maioria das corrupções do InnoDB está relacionada ao hardware. Gravações de páginas corrompidas podem ser causadas por falhas de energia ou memória ruim. O problema também pode ser causado pelo uso de armazenamento conectado à rede (NAS) e pela alocação de bancos de dados InnoDB nele.

Resolução

Plesk tem dois servidores MySQL em uma plataforma Windows:

PleskSQLServer é para bancos de dados relacionados ao Plesk na porta 8306: [Windows] Servidor MySQL local para bancos de dados relacionados ao Plesk (psa, apsc, horde)

A outra é para bancos de dados MySQL do cliente na porta 3306: [Windows] Servidor MySQL local para bancos de dados dos clientes

Note: To start/stop/restart PleskSQLServer/MySQL, it is recommended to use Plesk Services Monitor.

Recupere o InnoDB para o servidor de banco de dados afetado:

                                                          Recuperação InnoDB para o serviço PleskSQLServer

  1. Conecte-se ao servidor via RDP .

  2. Crie um backup de todos os dados e bancos de dados MySQL relacionados ao Plesk em %plesk_dir%MySQL\Data\

  3. Abra o %plesk_dir%MySQL\my.ini arquivo.

  4. Adicione as seguintes linhas na [PleskSQLServer] seção:

    1. innodb_force_recovery = 1
      skip-grant-tables

  5. Tente iniciar o PleskSQLServer.

  6. Caso falhe novamente, defina innodb_force_recovery um valor maior e tente iniciá-lo novamente.

    Warning: Only set innodb_force_recovery to a value greater than 0 in an emergency situation, so that you can start InnoDB and dump your tables. Values of 4 or greater can permanently corrupt data files. Therefore, increase this value incrementally, as necessary. Please see more details in the official MySQL Documentation.

  7. Depois que o PleskSQLServer for iniciado no modo de recuperação forçada, crie dumps de todos os bancos de dados usando o seguinte comando executado pelo PowerShell:

    PS cd $env:plesk_dir\mysql\bin\
    mkdir .\data_restore
    .\mysql.exe -uadmin -P8306 -sNe "SHOW DATABASES" | findstr /V performance_schema | findstr /V information_schema > c:\db_list.txt
    foreach ($var in get-content c:\db_list.txt) {.\mysqldump.exe -uadmin -P8306 $var > .\data_restore\$var.sql}
  8. Pare o serviço PleskSQLServer.

  9. Remova todos os dados do MySQL, exceto mysql a pasta e os logs de erro do %plesk_dir%MySQL\Data\diretório.

  10. Remova a linha innodb_force_recovery do my.ini arquivo

  11. Inicie o PleskSQLServer

  12. Restaure os bancos de dados dos dumps feitos durante a etapa 7:

    PS foreach ($var in get-content c:\db_list.txt) {.\mysql.exe -uadmin -P8306 -e"create database $var"}
    foreach ($var in get-content c:\db_list.txt) {get-content .\data_restore\$var.sql | .\mysql.exe -uadmin -P8306 $var}

  13. Remova a skip-grant-tables linha do my.ini arquivo e reinicie o PleskSQLServer .

                                                 Recuperação InnoDB para o serviço MySQL de clientes

    1. Conecte-se ao servidor via RDP .

    2. Crie um backup de todos os dados e bancos de dados MySQL atuais em%plesk_dir%Databases\MySQL\data

    3. Abra o %plesk_dir%Databases\MySQL\my.ini arquivo.

    4. Adicione a seguinte linha na [MySQLD]seção:

      innodb_force_recovery = 1
      skip-grant-tables

    5. Tente iniciar o MySQL.

    6. Caso falhe novamente, defina innodb_force_recovery um valor maior e tente iniciá-lo novamente.

      Warning: Only set innodb_force_recovery to a value greater than 0 in an emergency situation, so that you can start InnoDB and dump your tables. Values of 4 or greater can permanently corrupt data files. Therefore, increase this value incrementally, as necessary. Please see more details in the Official MySQL Documentation.

    7. Depois que o MySQL for iniciado no modo de recuperação forçada, crie despejos de todos os bancos de dados usando o seguinte comando executado pelo PowerShell:

      PS cd $env:plesk_dir\mysql\bin\
      mkdir .\data_restore
      .\mysql.exe -uadmin -P3306 -e"SHOW DATABASES" > c:\db_list.txt
      foreach ($var in get-content c:\db_list.txt) {.\mysqldump.exe -uadmin -P3306 $var > .\data_restore\$var.sql}
    8. Pare o serviço MySQL.

    9. Remova todos os dados do MySQL, exceto mysql a pasta e os logs de erro do %plesk_dir%Databases\MySQL\data diretório.

    10. Remova a linha innodb_force_recovery do my.ini arquivo e inicie o MySQL.

    11. Restaure os bancos de dados dos dumps feitos durante a etapa 7:

      PS foreach ($var in get-content c:\db_list.txt) {.\mysql.exe -uadmin -P3306 -e"create database $var" }
      foreach ($var in get-content c:\db_list.txt) {get-content .\data_restore\$var.sql | .\mysql.exe -uadmin -P3306 $var}
    12. Remova a skip-grant-tables linha do my.ini arquivo e reinicie o MySQL.

    Se o MySQL falhar ao iniciar mesmo com o innodb_force_recovery valor mais alto possível definido como 6, o único método restante é reinicializar o MySQL e restaurar os bancos de dados de um backup:


                                                                Reinicialize o PleskSQLServer

    1. Conecte-se ao servidor via RDP .

    2. Certifique-se de que haja dumps diários do Plesk disponíveis no servidor no arquivo %plesk_dir%Mysql\Backup.

    3. Pare o servidor Plesk SQL através do Plesk Services Monitor .

    4. Crie um backup de todos os dados e bancos de dados MySQL atuais na %plesk_dir%MySQL\Data pasta.

    5. Inicie o prompt de comando e inicialize o MySQL executando o seguinte comando:

      • Para MariaDB >= 10.5:

        "%plesk_dir%MySQL\bin\mysql_install_db.exe" --datadir="%plesk_dir%MySQL\Data"
      • Para versões mais antigas do MariaDB/MySQL:

        "%plesk_dir%MySQL\bin\mysqld.exe" --initialize --datadir="%plesk_dir%MySQL\Data" --console
    6. Aplique as permissões corretas ao diretório MySQL:

      plesk sbin ApplySecurity.exe --apply-to-directory --directory="%plesk_dir%MySQL"
    7. Inicie o Plesk SQL Server através do Plesk Services Monitor .

    8. Crie um root usuário e senha MySQL:

      plesk sbin mysqlmng_adm.exe --inject-root

      plesk sbin mysqlmng_adm.exe --add-super-user --login=admin "--password= senha " --allowed-host=localhost

      Note: Replace password with the password of choice

      plesk sbin psadb.exe --update-admin-password --password=" senha "
    9. Faça login no servidor de banco de dados MySQL com a senha definida na etapa anterior:

      "%plesk_dir%MySQL\bin\mysqld.exe" -uadmin -p"
    10. Crie o banco de dados psa e faça logoff do servidor de banco de dados:

      CRIAR BANCO DE DADOS psa;
      Consulta OK, 1 linha afetada (0,002 seg)
      \q

    11. Restaure o psa banco de dados Plesk de um despejo diário .

    12. Crie o apsc banco de dados:

      plesk sbin mysqlmng_adm.exe --create-database --database=apsc

      plesk sbin mysqlmng_adm.exe --add-user --database=apsc --new-user-login=apsc "--new-user-password= senha " --allowed-host=localhost

      plesk php "%plesk_dir%admin\plib\scripts\register_apsc_database.php" --register -host 127.0.0.1 -port 8306 -database apsc -login apsc -password " password "
    13. Restaure o apsc banco de dados de um despejo diário como na etapa 9.

                                                               Para o servidor MySQL dos clientes

      1. Conecte-se ao servidor via RDP .

      2. Crie um backup de todos os dados e bancos de dados MySQL atuais em formato %plesk_dir%Databases\MySQL\Data.

      3. Remova todos os dados da %plesk_dir%Databases\MySQL\Data pasta.

      4. Abra o prompt de comando como administrador e execute o comando abaixo para inicializar o MariaDB.

        Note: In the example below the command is provided for MariaDB 10.6 and Plesk directory is a default one (%plesk_dir%=C:\Program Files (x86)\Plesk). Please consider adjusting paths if required

        "C:\Program Files\MariaDB 10.6\bin\mysql_install_db.exe" --datadir="%plesk_dir%Databases\MySQL\Data"
      5. Inicie o MariaDB através do Plesk Services Monitor .

      6. Abra o %plesk_dir%Databases\MySQL\my.ini arquivo para edição, adicione a skip-grant-tables opção a ele na [MySQLD]seção:

        [MySQLD]
        ...
        skip-grant-tables

        Salve as alterações.

      7. Reinicie o MariaDB através do Plesk Services Monitor para aplicar as alterações.

      8. Faça login no MySQL dos clientes sem a senha por meio do prompt de comando:

        "%plesk_dir%\MySQL\bin\mysql.exe" -P3306
      9. Execute os comandos abaixo um a um:

        9.1. Recarregue as políticas grant-tables executando o próximo comando:

        FLUSH PRIVILÉGIOS;

        9.2. Recrie o usuário especificando uma nova senha usando os próximos dois comandos:

        CRIAR USUÁRIO 'admin'@'localhost' IDENTIFICADO POR ' senha ';

        CONCEDA TODOS OS PRIVILÉGIOS EM TO 'admin'@'localhost' identificado por ' password ' WITH GRANT OPTION;

        Note: Make sure to replace password with a new password of choice.

        9.3. Diga ao servidor de banco de dados para recarregar as tabelas de concessão emitindo o comando FLUSH PRIVILEGES:

        FLUSH PRIVILÉGIOS;
      10. Remova o skip-grant-tables do arquivo de configuração do MySQL %plesk_dir%Databases\MySQL\my.ini e reinicie o serviço novamente como na Etapa 7.

      11. Faça login no Plesk .

      12. Navegue até Ferramentas e configurações > Servidores de banco de dados e clique em localhost .

      13. Na página aberta, clique no botão Configurações e especifique a nova senha, que foi definida na Etapa 9.2 nos campos Senha do administrador e Confirmar senha .

      14. No prompt de comando, execute o comando abaixo para sincronizar bancos de dados e usuários de banco de dados com o Plesk:

        plesk repara mysql -y
      15. Restaure os bancos de dados dos clientes a partir de um backup .

       

     

 

?האם התשובה שקיבלתם הייתה מועילה

Seu feedback ajuda a equipe da MVO a manter a base mais útil e objetiva.

Relacionados

מאמרים קשורים

Outros conteúdos que podem ajudar na continuidade do seu atendimento.

Relacionado

A lista de servidores de banco de dados não pode ser acessada: 500 GraphQL Internal Server Error

Sintomas Não é possível acessar Ferramentas e configurações > Servidores de banco de dados > database_server_name > X (contagem de bancos de dados): 500 GraphQL...
Relacionado

Não é possível criar um backup do banco de dados PostgreSQL: pg_dump: abortando devido à incompatibilidade da versão do servidor

Sintomas O servidor Plesk possui dois servidores de banco de dados PostgreSQL instalados, com as versões 9.2.15 e 9.5.4. Pelo menos um banco de dados foi criado no servidor...
Relacionado

Não é possível clonar ou fazer backup do banco de dados MSSQL no Plesk: a propriedade TextHeader não está disponível para StoredProcedure <...>. O texto é criptografado

Sintomas A cópia de um banco de dados MSSQL em Domínios > exemplo.com > Bancos de dados > exemplo_db > Falha na cópia: Unable to clone database. O seguinte...
Relacionado

MySQL/Mariadb falha ao iniciar: atualização após uma falha não é suportada

Sintomas O MySQL falha ao iniciar. As seguintes mensagens de erro aparecem nos logs /var/log/mysql/error.logou /var/log/mariadb/mariadb.log: InnoDB: Error: log file...
Relacionado

Como gerenciar um banco de dados hospedado no Plesk usando um cliente de banco de dados local?

Pergunta Como gerenciar um banco de dados hospedado no Plesk usando um cliente de banco de dados local? Resposta...

Powered by WHMCompleteSolution