Restaurar Banco do WordPress com Arquivos .IBD via SSH em VPS

Quando você instala o WordPress em algum servidor VPS Linux, vários arquivos contendo o nome das tabelas são criados em /var/lib/mysql/NomedoBanco. Onde “NomedoBanco” é o nome do seu banco de dados. (Antes de continuar, entenda que estou estou me baseando na estrutura de diretórios criados pelo Debian, então se você utiliza outro sabor de linux, talvez os caminhos possam divergir…)

Bom, então entrando dentro do diretório do seu banco de dados você vai encontrar um arquivo .ibd para cada tabela do seu blog Worpdress. Por exemplo, você vai encontrar lá: wp_users.ibd, wp_posts.ibd, wp_terms.ibd, etc, etc.

Esses arquivos irão armazenar os dados das tabelas. Porém se você copiar esses arquivos, e jogá-los em uma outra instalação do WP, não irá funcionar. Não funciona porque o servidor de banco de dados utiliza-se de outro arquivo chamado ibdata1, onde há referências do id de cada tabela. Quando as tabelas são criadas, elas recebem um número único, e esse número é inserido no arquivo ibdata1, e para tudo funcionar, eles precisam ser os mesmos.

O arquivo IBDATA1 é vital para o funcionamento correto de bancos com infraestrutura InnoDB. Veja essa imagem para entender melhor o que é o IBDATA1:

Então, para o nosso passo-a-passo a seguir, é importante descrever um cenário, então subentenda que você tenha os arquivos .ibd de um site seu chamado “Meu Site”, e que você tenha vários artigos nessas tabelas. Então dado esse problema, veja baixo como restaurar um banco de dados WordPress tendo apenas os arquivos .ibd, sendo que isso será feito via ssh em algum vps digital ocean ou vultr, blz. Vamos lá…

Passo-a-passo para Restaurar banco WordPress usando apenas .ibd

  1. Acesse o seu vps via SSH e faça uma instalação do WP normal. Como nós não temos os arquivos .frm, nós teremos de criar a estrutura das tabelas, e a melhor forma de fazer isso é reinstalando o WordPress normalmente.
  2. Depois de Concluir a Instalação do WordPress, abra o arquivo wp-config.php (vai estar no diretório /var/www/SeuDominioAqui) e veja qual foi o nome do Banco de Dados que Foi Criado. Nesse arquivo vão estar o nome do banco, o usuário e a senha, nas seguintes constantes:

    define( ‘DB_NAME’, ‘nome_do_banco’ );

    define( ‘DB_USER’, ‘nome_do_usuario’ );

    define( ‘DB_PASSWORD’, ‘senha’ );

  3. Agora você precisa se conectar ao Mysql para executar uns comandos. Para isso, no terminal SSH (eu uso o Putty) digite esse comando: mysql -h 127.0.0.1 -p -u nome_do_usuario nome_do_banco

    Note que nome_do_usuario você deve substituir pelo nome do usuario do seu banco de dados, e nome_do_banco pelo nome do seu banco. Note ainda que esses dados você pegou do arquivo wp-config.php conforme o passo anterior…

    Logo depois desse comando, o mysql vai pedir a senha do usuário, que é a mesma que é exibida no arquivo wp-config. Digite a senha e tecle “Enter” para logar no seu servidor de Banco de Dados.

  4. Agora Você estará Logado no Mysql, e agora você deve descartar a ligação que foi criada com o namespace (no ibdata1) e as tabelas do WP. Para isso execute os seguintes comandos:

  5. Muito bem! Agora é hora de copiar os arquivos .ibd para dentro do diretório /var/lib/mysql/NomedoBanco.
  6. Agora volte ao Mysql e digite esse comando:

    Isso fará atualizar as informações detablespace e devolverá a comunicação entre os arquivos.

  7. Na sequência, reinicie o servidor do Mysql. Se você tá usando o Easy Engine, pode fazer isso com esse comando: ee stack restart

Isso é tudo. Seu site WP Já deveria estar funcionando normalmente. Contudo, caso exista alguma tabela no formato .MYI e .MYD significa que ela em vez de INNODB está usando MY ISAM. Então nesse caso, você precisa copiar também o arquivo .frm juntamente com os dois arquivos .myi e .myd e mover para a pasta /var/lib/mysql/NomedoBanco. Talvez, em alguns casos, pode ser necessário executar o comando: ALTER TABLE table_name ENGINE=’MYISAM’; para Modificar a infraestrutura para esse formato.

Restaurar Banco do WordPress com Arquivos .IBD via SSH em VPS
4.7 (94.29%) 28 votes

0 comentários