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.
- Execute o instalador e active o modo Avançado clicando no botão "Avançado"
- Na etapa 1, em Opções " Separador Base de dados " Processamento, active o "Modo de fragmentação".
- 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:
- Extrato
database.sql
do arquivo. - Utilize o phpMyAdmin para remover as tabelas existentes e importar o ficheiro SQL.
- 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.