Corrigir o erro “Falha ao conectar ao banco de dados” no ownCloud 10 com MySQL.

A maneira mais rápida de isolar um erro "Falha ao conectar ao banco de dados" no ownCloud 10 é testar a mesma conta MySQL, nome do banco de dados e host a partir do próprio servidor ownCloud. Se o login falhar, corrija primeiro a disponibilidade do MySQL, o acesso à rede, as credenciais ou as permissões. Se for bem-sucedido, verifique o arquivo `.bashrc` do ownCloud config/config.php, a extensão do PHP pdo_mysqle se o PHP está usando o socket ou a conexão TCP correta.

Este guia abrange uma instalação existente do ownCloud Server 10 usando MySQL ou MariaDB no Linux. Os nomes dos serviços e os comandos dos pacotes variam de acordo com o sistema operacional e o tipo de instalação. Faça backup da configuração e do banco de dados antes de editar as configurações de produção. Nunca compartilhe a senha do banco de dados em uma issue ou a copie e cole em um registro público do shell.

O que o erro indica?

A mensagem é um sintoma, não um diagnóstico. Leia o log do ownCloud e o log do servidor web ou do PHP no momento da falha. A exceção subjacente pode identificar um driver ausente, uma conexão recusada, um login rejeitado ou um banco de dados desconhecido. O guia de banco de dados Linux do ownCloud requer pdo_mysqla extensão do PHP e observa que a configuração do socket é importante quando o MySQL é local. Recomenda-se testar o acesso com o cliente de linha de comando do MySQL.

Mensagem ou pistaÁrea provável para verificar
could not find driverou um erro do driver PDOO ambiente de execução PHP para web não está pdo_mysqlhabilitado.
SQLSTATE[HY000] [2002]ou “Não foi possível conectar”O MySQL está parado, o host ou a porta estão incorretos, um firewall está bloqueando o TCP ou o caminho do socket está incorreto.
Access denied for userA senha, o host da conta ou as configurações de autenticação do MySQL não correspondem.
Unknown databaseO nome do banco de dados configurado está escrito incorretamente, está ausente ou não está visível para a conta.

Os códigos de erro exatos podem variar de acordo com as versões do PHP, MySQL, MariaDB e do sistema operacional. Considere-os como pistas e confirme a causa com as verificações abaixo. A documentação do MySQL sobre erros de acesso negado observa que a correspondência entre conta e host são causas comuns.

O host do ownCloud consegue acessar o MySQL?

Descubra se o MySQL está sendo executado no servidor ownCloud, em outra máquina ou em um contêiner. No Linux, verifique o serviço. Os nomes de unidade comuns são `mysql` mysqle `mysql` mariadb; use o instalado no seu servidor.

sudo systemctl status mysql
sudo systemctl status mariadb

Se estiver inativo, verifique o registro de erros do banco de dados ou o diário de bordo antes de reiniciá-lo. Um erro de configuração, disco cheio, falha na recuperação do banco de dados ou conflito de portas podem impedir a inicialização.

sudo journalctl -u mariadb --since "30 minutes ago"
sudo systemctl start mariadb

Substitua o nome do serviço conforme apropriado. Um serviço em execução não comprova que o ownCloud pode autenticar; continue com o teste da conta.

Para um banco de dados remoto, teste o DNS e a porta TCP configurada no host do ownCloud. O MySQL geralmente utiliza a porta 3306, embora as implementações possam usar outra porta:

getent hosts db.example.net
nc -vz db.example.net 3306

Uma falha na verificação indica um problema no DNS, roteamento, firewall ou configuração do listener do banco de dados. Permita conexões somente do servidor ownCloud por meio de uma rede privada, sempre que possível. Não exponha o MySQL à internet pública como um atalho.

A conta do banco de dados funciona a partir do host ownCloud?

Execute o cliente MySQL no servidor de aplicativos com o mesmo nome de banco de dados, usuário e host de destino que o ownCloud deve usar. A -popção solicita a senha de forma privada, evitando que ela seja inserida no próprio comando.

mysql -u oc_app -p -h localhost owncloud

Para um banco de dados remoto, substitua localhostpelo nome do host. Se o login funcionar, execute uma verificação inofensiva:

SELECT DATABASE(), CURRENT_USER();
SHOW TABLES;
EXIT;

Isso confirma a autenticação básica e o acesso ao banco de dados selecionado. Se falhar, leia o erro exato e o nome de usuário/host relatado pelo MySQL. O MySQL trata o nome de usuário e o host em conjunto ao associar uma conta. Observe também que localhostno Linux é comum usar um socket Unix, enquanto 127.0.0.1o MySQL força o uso de TCP. Teste o mesmo método de conexão usado na sua configuração do ownCloud:

mysql -u oc_app -p -h 127.0.0.1 owncloud

As configurações do banco de dados ownCloud estão corretas?

Verifique o config/config.phpdiretório de instalação do ownCloud. A referência de configuração do ownCloud lista o tipo de banco de dados, nome, usuário e senha; o guia do banco de dados também mostra o host e o prefixo da tabela. Uma configuração típica do MySQL se assemelha a:

'dbtype' => 'mysql',
'dbname' => 'owncloud',
'dbuser' => 'oc_app',
'dbpassword' => 'REDACTED',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',

Verifique se há erros de ortografia, espaços em branco acidentais, senhas desatualizadas, nomes de banco de dados com letras maiúsculas e minúsculas diferentes ou hosts apontando para o servidor errado. Preserve o restante do arquivo, incluindo o segredo da instância e o diretório de dados. Não substitua toda a configuração por este exemplo.

Após a edição, confirme se o arquivo é um PHP válido usando o binário do PHP da sua instalação:

php -l /var/www/owncloud/config/config.php

O caminho de instalação pode ser diferente. Restrinja o acesso a este arquivo config.php; ele contém credenciais de banco de dados e outros valores confidenciais.

O driver MySQL do PHP está habilitado para a aplicação web?

O guia de banco de dados do ownCloud 10 requer [informações adicionais necessárias] pdo_mysql. Verifique a versão do PHP e os módulos carregados:

php -v
php -m | grep -i pdo_mysql

Se o módulo estiver faltando, instale o pacote MySQL PDO correspondente à sua versão do PHP e, em seguida, reinicie ou recarregue o servidor web ou o pool PHP-FPM relevante. Os nomes dos pacotes variam entre Ubuntu, Debian, SUSE, Red Hat e imagens de contêiner. Um módulo habilitado para PHP de linha de comando pode não estar habilitado para Apache ou PHP-FPM; portanto, verifique também a configuração do PHP no ambiente de execução web. Evite deixar uma página de diagnóstico pública que revele informações de configuração do PHP.

Será que a configuração do socket ou do host está incorreta?

No Linux, um cliente MySQL pode usar um socket Unix para comunicação localhost, enquanto 127.0.0.1o servidor usa TCP. Se o MySQL estiver na mesma máquina, verifique se mysql.default_socketo arquivo de socket do PHP aponta para o arquivo criado pelo servidor de banco de dados. Compare as configurações de socket e porta do servidor de banco de dados com as configurações do PHP e o valor do host do ownCloud.

Se o MySQL estiver remoto, localhostconsidere a máquina ownCloud e não o servidor de banco de dados. Defina o nome do host do banco de dados acessível e certifique-se de que o MySQL esteja escutando na interface correta. Um firewall ou uma configuração somente local bind-addresspode impedir o acesso remoto, mesmo que os comandos do banco de dados local funcionem. Restrinja o acesso ao endereço IP privado do servidor de aplicativos.

A conta MySQL e as permissões correspondem ao host do cliente?

As contas MySQL incluem um nome de usuário e um componente de host. Portanto, `username` 'oc_app'@'localhost'e `host` 'oc_app'@'10.0.0.25'são entradas de conta diferentes. Use uma conexão administrativa para inspecionar as contas disponíveis e as permissões da conta que deve corresponder:

SELECT User, Host FROM mysql.user;
SHOW GRANTS FOR 'oc_app'@'localhost';

Se a conta não existir e o banco de dados já estiver cadastrado, crie uma conta dedicada e conceda a ela privilégios apenas no banco de dados do ownCloud. Substitua o banco de dados, o host e a senha de exemplo pelos seus valores reais:

CREATE USER 'oc_app'@'localhost' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'oc_app'@'localhost';

Para um banco de dados remoto, utilize o host real do servidor de aplicativos na definição da conta. Evite usar um host curinga ou privilégios globais como solução rápida e não execute o ownCloud como root do MySQL. Se a conta já existir, revise as permissões concedidas e redefina a senha cuidadosamente, em vez de criar contas duplicadas. Teste novamente o login a partir do servidor ownCloud.

Como você confirma o reparo?

Após alterar um item de cada vez, confirme se o mesmo login da linha de comando do MySQL funciona a partir do host ownCloud, se o ambiente de execução PHP da web está configurado corretamente pdo_mysqle se o log do ownCloud não registra mais exceções de conexão. Recarregue o site e execute uma operação básica de leitura e gravação somente depois que a instância estiver disponível novamente.

Se o login pela linha de comando for bem-sucedido, mas o ownCloud ainda falhar, compare o formulário de host, a conta, o nome do banco de dados e o ambiente de execução PHP usados ​​pelo processo web com o teste que funcionou. Verifique os logs do servidor web ou do PHP-FPM no momento da requisição. Para um servidor já instalado, repare a configuração existente com cuidado; não exclua o banco de dados nem execute uma nova instalação como solução rápida para problemas.

Para obter mais informações, consulte o guia de configuração e solução de problemas do banco de dados do ownCloud Server 10.16 , a referência de configuração do ownCloud 10.15 e os guias oficiais do MySQL sobre solução de problemas de conexão e erros de acesso negado . Os nomes dos serviços, os comandos dos pacotes e as configurações exatas dependem do seu sistema operacional e da sua implementação.

Deixar um comentário

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

10 Melhores Ferramentas de Varredura de Ping para Encontrar Dispositivos na Sua Rede

Compare 10 ferramentas de varredura de ping para descoberta rápida de LAN, varredura multiplataforma e gerenciamento de endereços IP. Saiba o que uma varredura pode — e não pode — revelar.

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

6 Melhores Ferramentas de Gerenciamento de Rede para Monitorar o Desempenho

Compare seis ferramentas de gerenciamento de rede para monitoramento de desempenho, incluindo cobertura SNMP, mapeamento, alertas, modelos de implantação e custo-benefício.

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Melhores analisadores de Wi-Fi para Windows, iOS e Android

Compare as melhores opções de analisadores de Wi-Fi para Windows, iPhone e Android, incluindo ferramentas para congestionamento de canais, cobertura de sinal, mapas de calor e solução de problemas de rede.

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Monitor de Ping: 7 ferramentas gratuitas e de código aberto para disponibilidade de rede

Compare sete monitores de ping gratuitos e de código aberto, desde suítes completas de rede até sondas de latência específicas, e escolha a opção mais adequada para disponibilidade, perda de pacotes e histórico.

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Taxa de transferência de rede versus largura de banda: o que significam e como afetam o desempenho

Veja como a taxa de transferência de rede difere da largura de banda, o que causa desempenho lento ou instável e quais ferramentas podem testar um caminho ou monitorar o tráfego.

Melhor software de servidor SFTP para transferências seguras de arquivos

Melhor software de servidor SFTP para transferências seguras de arquivos

Compare softwares de servidor SFTP confiáveis ​​para Windows e Linux, incluindo OpenSSH, Bitvise, SolarWinds e SFTPGo. Encontre a solução ideal para suas necessidades de segurança e transferência de arquivos.

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Melhores práticas de monitoramento de rede: o que monitorar e quais ferramentas usar

Crie um monitoramento de rede prático com cobertura clara de dispositivos, métricas de desempenho úteis, alertas acionáveis ​​e uma comparação entre SolarWinds NPM, PRTG e OpManager.

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

As 7 melhores ferramentas de gerenciamento de endereços IP para equipes de rede

Compare sete ferramentas de gerenciamento de endereços IP para descoberta de sub-redes, coordenação de DNS e DHCP, inventário de rede e IPAM de código aberto.

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

10 Melhores Ferramentas de Varredura de Rede para Descobrir Dispositivos e IPs

Compare ferramentas de varredura de rede para descoberta rápida de dispositivos, varreduras de IP multiplataforma e IPAM corporativo, com orientações sobre como escolher a opção mais adequada para sua rede.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

6 ferramentas de monitoramento de rede Linux para dispositivos, hosts e tráfego.

Compare seis ferramentas de monitoramento de rede Linux para descoberta de dispositivos SNMP, gráficos de interface, métricas de host, verificação de serviços e fluxos de tráfego.