Como posso solucionar erros de conexão de banco de dados em aplicativos baseados em WordPress hospedados no Lightsail?

8 minuto de leitura
0

Quando conecto meu aplicativo baseado em WordPress ao Amazon Lightsail, recebo um ou ambos os erros a seguir: “Error establishing a database connection.” “One or more database tables are unavailable. The database may need to be repaired.” Quero resolver esse problema.

Breve descrição

Você recebe essas mensagens de erro pelos seguintes motivos:

  • Tabelas de banco de dados corrompidas
  • Conexão de banco de dados remoto bloqueada
  • Problemas no serviço de banco de dados
  • Espaço insuficiente no seu volume
  • Credenciais de login incorretas em seu arquivo de configuração do WordPress

Resolução

Tabelas de banco de dados corrompidas

Para verificar se há tabelas de banco de dados corrompidas, conclua as etapas a seguir:

  1. Acesse example.com/wp-admin e procure o seguinte erro: Uma ou mais tabelas do banco de dados não estão disponíveis. Talvez seja necessário reparar o banco de dados.
    Observação: substitua example.com pelo nome de seu site.

  2. Use um editor de texto, como o editor vi, para acessar o arquivo wp-config.php:

    $ sudo vi wp-config.php
  3. Imediatamente antes da linha That's all, stop editing! Happy blogging, adicione a seguinte linha:

    define('WP_ALLOW_REPAIR' ,true);
  4. Acesse example.com/wp-admin/maint/repair.php e, em seguida, execute Repair Database.
    Observação: substitua example.com pelo nome de seu site.

  5. Volte ao arquivo wp-config-php e remova a linha de código que você adicionou na etapa 3.

Conexão de banco de dados remoto bloqueada

Se o servidor de banco de dados não permitir conexões remotas da instância que está hospedando o site, você não poderá se conectar ao banco de dados. É uma prática recomendada armazenar o banco de dados do site em um banco de dados gerenciado pelo Lightsail para obter alta disponibilidade e segurança.

Para verificar sua conexão com o banco de dados, conclua as etapas a seguir:

  1. Verifique no arquivo de configuração wp-config.php em busca do valor DB_HOST:
    define('DB_HOST', '192.168.22.9');
    Observação: se o valor não for localhost ou 127.0.0.1, então o banco de dados reside em um servidor remoto. Copie o valor DB_HOST para usá-lo na etapa seguinte.
  2. Use a porta 3306 para fazer telnet do servidor para o servidor remoto:
    telnet remote server IP 3306
    Observação: substitua o IP do servidor remoto pelo valor DB_HOST que você recebeu na etapa 1.
  3. Se você não conseguir se conectar, a configuração do banco de dados do servidor remoto não permite conexões remotas. Um firewall no servidor remoto também pode bloquear sua conexão. Entre em contato com o proprietário do banco de dados externo ou com a equipe de suporte para configurar as conexões da sua instância do Lightsail.

Problemas no serviço de banco de dados

Para verificar se o serviço de banco de dados está inativo, determine se a instância do Lightsail WordPress usa MySQL ou MariaDB como tipo de servidor. Além disso, verifique se a instância usa sistemas Linux nativos ou um servidor que é uma instalação autônoma. Para identificar o tipo e a abordagem do servidor, execute os seguintes comandos:

test -d /opt/bitnami/mariadb && echo "MariaDB" || echo "MySQL"
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A" || echo "Approach B"

Observação: se você vir Approach A na saída, então seu servidor usa sistemas Linux nativos. Se você vir Approach B, o servidor é uma instalação autônoma.

Servidor de banco de dados MySQL

Para verificar se há problemas de serviço em um banco de dados MySQL, conclua as etapas a seguir:

  1. Para verificar o status do servidor de banco de dados, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh status mysql
  2. Se o banco de dados estiver parado, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh start mysql
  3. Se ainda assim não for possível iniciar o serviço de banco de dados ou se houver erros durante o processo de inicialização, verifique os logs do banco de dados para identificar a causa raiz. Se seu servidor usar sistemas Linux nativos, verifique o seguinte local de arquivo: /opt/bitnami/mysql/logs/mysqld.log. Se o seu servidor for uma instalação autônoma, verifique o seguinte local de arquivo: /opt/bitnami/mysql/data/mysqld.log. Pouco espaço em disco ou pouca memória disponível afetam o desempenho e a conectividade do banco de dados. Para verificar esses recursos, execute os comandos df e free.

Servidor de banco de dados MariaDB

Para verificar se há problemas de serviço em um banco de dados MariaDB, conclua as etapas a seguir:

  1. Para verificar o status do servidor de banco de dados, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh status mariadb
  2. Se o banco de dados estiver parado, execute o seguinte comando:

    sudo /opt/bitnami/ctlscript.sh start mariadb
  3. Se ainda assim não for possível iniciar o serviço de banco de dados ou se houver erros durante o processo de inicialização, verifique os logs do banco de dados para identificar a causa raiz. Se seu servidor usar sistemas Linux nativos, verifique o seguinte local de arquivo: /opt/bitnami/mariadb/logs/mysqld.log. Se o seu servidor for uma instalação autônoma, verifique o seguinte local de arquivo: /opt/bitnami/mariadb/data/mysqld.log. Pouco espaço em disco ou pouca memória disponível afetam o desempenho e a conectividade do banco de dados. Para verificar esses recursos, execute os comandos df e free.

Espaço insuficiente no seu volume

Se o espaço livre em disco em seu volume for de 100% ou um pouco abaixo de 100%, o serviço de banco de dados poderá ficar inativo.

Para verificar o volume do servidor, conclua as etapas a seguir:

  1. Para ver a quantidade de espaço livre em disco, execute o seguinte comando:

    $ sudo df -h

    Exemplo de saída:

    
    Filesystem      Size    Used     Avail      Use%    Mounted ondevtmpfs        1.9G     0       1.9G        0%     /dev  
    tmpfs           1.9G     0       1.9G        0%     /dev/shm  
    tmpfs           1.9G    400K     1.9G        1%     /run  
    tmpfs           1.9G     0       1.9G        0%     /sys/fs/cgroup  
    /dev/nvme0n1p1  8.0G    8.0G      0G        100%    /  
    tmpfs           389M     0       389M        0%     /run/user/1000
  2. Se você não tiver espaço disponível suficiente, aumente o tamanho da instância ou exclua os arquivos desnecessários do servidor.

  3. Reinicie o serviço de banco de dados.

Credenciais de login incorretas em seu arquivo de configuração do WordPress

Verificar suas credenciais

Conclua as seguintes etapas:

  1. Acesse o arquivo wp-config.php. Copie os detalhes em DB_NAME, DB_HOST, DB_USER e DB_PASSWORD para um arquivo de texto a ser usado na etapa seguinte.
  2. Para acessar o banco de dados a partir de um terminal, execute o seguinte comando:
    sudo mysql 'DB_NAME' -h 'DB_HOST' -u 'DB_USER' -pEnter password: ********
    Observação: substitua DB_NAME, DB_HOST e DB_USER pelos valores que você copiou na etapa 1.
  3. Insira a senha com o valor DB_PASSWORD e, em seguida, pressione ENTER.
    Observação: se você receber um erro Access Denied, as credenciais estão incorretas. Para resolver isso, redefina a senha do usuário do banco de dados.
  4. Se o host do banco de dados for remoto, atualize a string de conexão no arquivo wp-config.php. Se o banco de dados estiver no mesmo servidor, valide que DB_NAME é bitnami-wordpress e DB_USER é bn_wordpress.

Redefinir a senha do usuário do banco de dados

Conclua as seguintes etapas:

  1. Para acessar /home/bitnami/bitnami_credentials, execute o seguinte comando:

    sudo cat /home/bitnami/bitnami_credentials

    Observação: copie a senha do banco de dados raiz em um arquivo de texto para usá-la na etapa seguinte.

  2. Para fazer login no shell MySQL ou MariaDB, execute o seguinte comando:

    sudo mysql -u root -pEnter password: ********

    Observação: substitua mysql pelo seu servidor e ********* pela senha do banco de dados raiz que você copiou na etapa 1. Se não conseguir fazer login com a senha, siga as instruções no site da Bitnami para redefinir a senha para MySQL ou MariaDB.

  3. Para verificar se o banco de dados bitnami_wordpress existe, execute a seguinte consulta:

    show databases;
  4. Para verificar se o usuário do banco de dados bn-wordpress existe, execute a seguinte consulta:

    SELECT user FROM mysql.user;
  5. Se você usar um banco de dados MySQL, execute o seguinte comando para redefinir a senha do banco de dados do usuário bn-wordpress:

    alter user 'bn_wordpress'@'localhost' identified by 'PASSWORD';alter user 'bn_wordpress'@'127.0.0.1' identified by 'PASSWORD';

    Se você usar um banco de dados MariaDB, execute o seguinte comando para redefinir a senha do banco de dados do usuário bn-wordpress:

    alter user 'bn_wordpress'@'%' identified by 'PASSWORD';

    Observação: substitua PASSWORD pela senha do arquivo wp-config.php na etapa 3 de Verifique suas credenciais.

Se nenhuma das resoluções anteriores resolver o problema, então inicie uma nova instância do Lightsail a partir de um instantâneo.

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses