Obtenha hoje o melhor plug-in de backup e migração para WordPress
Obter o Duplicator agora

Documentação do Duplicador

Documentação, materiais de referência e tutoriais para o Duplicator

Como corrigir problemas de ligação à base de dados

Está a ter problemas em ligar-se à sua base de dados durante a instalação? Este guia abrange problemas comuns de ligação à base de dados e fornece soluções passo-a-passo para os resolver.

Questão A: Falhas de validação

No Passo 1 (Pro) e no Passo 2 (Lite) do instalador, quando clica em "Testar base de dados", recebe um estado de falha.

Solução 1: Lista de controlo de validação

Certifique-se de que as credenciais e as permissões da base de dados estão corretamente configuradas:

  • Verifique novamente se a base de dados e o utilizador da base de dados foram criados.
  • Verifique se a palavra-passe corresponde ao utilizador da base de dados que está a ser utilizado.
  • Certifique-se de que o utilizador da base de dados está atribuído à base de dados com as permissões corretas.
  • Altere temporariamente a palavra-passe do utilizador da base de dados para 'test123' para validar a introdução de caracteres.
  • Contacte o seu fornecedor de alojamento para obter os parâmetros exactos necessários.

Solução 2: Validação do nome de anfitrião

O nome de anfitrião predefinido "localhost" funciona na maioria dos casos, mas pode variar consoante o fornecedor de alojamento. Confirme as definições exactas com o seu anfitrião. Algumas variações comuns incluem:

  • mysql.yourname.com
  • mysql.hostingcompany.com
  • mysql.hostingcompany.com:1400

Se vir um erro do tipo "Não é possível ligar ao servidor MySQL local através do socket '/var/lib/mysql/mysql.sock' (2)", é provável que se deva a um nome de anfitrião incorreto.

Correção rápida:

Contacte o seu fornecedor de alojamento para confirmar as credenciais corretas para as ligações à base de dados. Consulte estes recursos de suporte:

  • GoDaddy
  • HostMonster
  • Bluehost
  • HostGator
  • DreamHost
  • Pesquisar no Google: "[Your host] database setup"

Solução 3: Conflitos de modo SQL

Se encontrar uma mensagem "Erro ao ler variáveis da base de dados", a sua instância MySQL pode ter "ANSI_QUOTES" ativado no seu modo SQL. Uma vez que o MySQL trata as aspas duplas como identificadores em vez de cadeias de caracteres neste modo, pode causar problemas. Para resolver este problema, remova o modo SQL ANSI_QUOTES.

Mensagens de erro comuns:

  • Unknown column ‘wp_table’ in ‘where clause’

Questão B: Acesso negado

Se receber um erro como Access denied for user 'myuser'@'localhost' (using password: YES) ao testar a ligação à base de dados, siga estas soluções.

Mensagens de erro comuns:

  • Error: 'Access denied; you need (at least one of) the PROCESS privilege ...
  • The database user for this WordPress site does NOT have sufficient permissions to write stored procedures ...

Solução 1: Atribuição de privilégios totais

Certifique-se de que o utilizador da base de dados está atribuído à base de dados com privilégios totais:

  • A forma mais fácil de confirmar as permissões é contactar o seu fornecedor de alojamento.
  • Siga o Guia do Codex do WordPress para criar uma base de dados e um utilizador.
  • Para obter uma demonstração do cPanel, consulte este artigo.
  • Para MySQL 8+: Execute o seguinte comando para conceder todos os privilégios necessários: GRANT SHOW_ROUTINE ON *.* TO <USER>@<LOCATION>;

Solução 2: Criar um novo utilizador da base de dados

Se a atribuição de privilégios totais não funcionar, crie um novo utilizador da base de dados, conceda permissões totais e atribua-o à base de dados. Isto pode resolver problemas de cache armazenados na base de dados.

Solução 3: Mover bases de dados entre servidores

Ao migrar um site entre servidores MySQL, as diferentes versões do MySQL podem não suportar as mesmas diretivas, conduzindo a um erro como o seguinte:

  • mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege ...'

Soluções alternativas:

  • Construir em modo PHP: Utilize PHP para evitar conflitos de diretivas MySQL.
  • Modificar o Script SQL: Remova as diretivas não suportadas do ficheiro SQL antes de executar o instalador.

Problema C: Timeouts da base de dados

Se ocorrerem tempos limite de ligação SQL ou erros de memória no Passo 2, siga estas soluções.

Solução 1: Ativar a fragmentação da base de dados

Este processo multi-thread divide a instalação da base de dados em consultas mais pequenas.

  1. Execute o instalador e active o modo Avançado clicando no botão "Avançado"
  2. Na etapa 1, em Opções " Separador Base de dados " Processamento, active o "Modo de fragmentação".
  3. Continuar com a instalação.

Solução 2: Saltar a extração da base de dados

Em vez de criar novas tabelas de base de dados, importe manualmente a base de dados.

Passos:

  1. Extrato database.sql do arquivo.
  2. Utilize o phpMyAdmin para remover as tabelas existentes e importar o ficheiro SQL.
  3. No instalador, selecione "Ignorar extração da base de dados" em Opções avançadas.

Solução 3: Problemas específicos do Duplicator Lite

O Duplicator Lite (v1.4.7.2 ou anterior) suporta apenas uma importação de base de dados com um único thread, o que pode causar problemas em servidores partilhados ocupados.

Soluções alternativas:

  • Execute o instalador fora das horas de ponta.
  • Altere o modo de construção nas definições do Duplicator para "PHP".
  • Contacte o seu anfitrião para aumentar os limites de tempo limite do servidor.
  • Actualize para o Duplicator Pro para utilizar a fragmentação de ficheiros SQL.

Mensagens de erro comuns:

  • MySQL Server has gone away, out of memory, or 500 Error

Resolução de problemas

Se os problemas de conexão persistirem, use o código PHP para isolar o problema. Crie um arquivo chamado db-test.php no mesmo diretório que o instalador e insira o seguinte código:

<?php
$servername = "your_server";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Success: Connected to MySQL!";
?>

Se o script falhar, partilhe-o com o seu fornecedor de alojamento para posterior depuração.

Este script também está disponível na pasta Diretório de ferramentas do Duplicator Pro em /plugins/duplicator-pro/tools/db-test.php.

Ao seguir estas soluções, pode resolver problemas de ligação à base de dados e garantir um processo de instalação sem problemas.

Este artigo foi útil?

Artigos relacionados