Résolution du problème « Échec de la connexion à la base de données » dans ownCloud 10 avec MySQL

Pour isoler rapidement l'erreur « Échec de la connexion à la base de données » d'ownCloud 10, testez le compte MySQL, le nom de la base de données et l'hôte depuis le serveur ownCloud lui-même. Si la connexion échoue, commencez par résoudre les problèmes de disponibilité de MySQL, d'accès réseau, d'identifiants ou d'autorisations. Si la connexion réussit, vérifiez la configuration d'ownCloud config/config.php, l'extension PHP pdo_mysqlet assurez-vous que PHP utilise bien le type de connexion (socket ou TCP).

Ce guide concerne une installation existante d'ownCloud Server 10 utilisant MySQL ou MariaDB sous Linux. Les noms de services et les commandes varient selon le système d'exploitation et le type d'installation. Sauvegardez la configuration et la base de données avant de modifier les paramètres de production. Ne partagez jamais le mot de passe de la base de données dans un ticket ou ne le collez jamais dans une session de chat publique.

Que vous indique ce message d'erreur ?

Ce message indique un symptôme, et non un diagnostic. Consultez les journaux d'ownCloud et du serveur web ou de PHP au moment de l'incident. L'exception sous-jacente peut révéler un pilote manquant, une connexion refusée, une tentative d'authentification rejetée ou une base de données inconnue. Le guide d'ownCloud relatif aux bases de données Linux requiert pdo_mysqll'extension PHP et précise que la configuration du socket est importante lorsque MySQL est installé localement. Il est recommandé de tester l'accès avec le client en ligne de commande MySQL.

Message ou indiceZone probable à vérifier
could not find driverou une erreur de pilote PDOL'environnement d'exécution PHP Web n'est pas pdo_mysqlactivé.
SQLSTATE[HY000] [2002]ou « Impossible de se connecter »MySQL est arrêté, l'hôte ou le port est incorrect, un pare-feu bloque le protocole TCP ou le chemin du socket est incorrect.
Access denied for userLe mot de passe, l'hôte du compte ou les paramètres d'authentification MySQL ne correspondent pas.
Unknown databaseLe nom de la base de données configurée est mal orthographié, manquant ou invisible pour le compte.

Les codes d'erreur exacts peuvent varier selon les versions de PHP, MySQL, MariaDB et du système d'exploitation. Considérez-les comme des indices et confirmez la cause à l'aide des vérifications ci-dessous. La documentation MySQL relative aux erreurs d'accès refusé indique que les problèmes de correspondance de compte et d'hôte sont des causes fréquentes.

L'hôte ownCloud peut-il accéder à MySQL ?

Déterminez si MySQL s'exécute sur le serveur ownCloud, une autre machine ou un conteneur. Sous Linux, consultez le service. Les noms d'unités courants sont `/etc/mysql` mysqlet `/etc /mysql`mariadb ; utilisez celui installé sur votre serveur.

sudo systemctl status mysql
sudo systemctl status mariadb

S'il est inactif, consultez le journal des erreurs ou le fichier journal de la base de données avant de le redémarrer. Une erreur de configuration, un disque plein, une récupération de base de données ayant échoué ou un conflit de ports peuvent empêcher le démarrage.

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

Remplacez le nom du service par le nom approprié. Un service en cours d'exécution ne prouve pas qu'ownCloud peut s'authentifier ; poursuivez avec le test du compte.

Pour une base de données distante, testez le DNS et le port TCP configuré depuis l'hôte ownCloud. MySQL écoute généralement sur le port 3306, mais certains déploiements peuvent utiliser un autre port.

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

Un échec de vérification indique un problème de DNS, de routage, de pare-feu ou de configuration du serveur d'écoute de base de données. Dans la mesure du possible, autorisez les connexions uniquement depuis le serveur ownCloud via un réseau privé. Évitez d'exposer MySQL sur Internet.

Le compte de base de données fonctionne-t-il depuis l'hôte ownCloud ?

Exécutez le client MySQL sur le serveur d'applications avec le même nom de base de données, le même utilisateur et le même hôte de destination que ceux utilisés par ownCloud. Cette -poption permet une saisie privée du mot de passe, évitant ainsi de l'inclure directement dans la commande.

mysql -u oc_app -p -h localhost owncloud

Pour une base de données distante, remplacez localhostpar son nom d'hôte. Si la connexion réussit, effectuez une vérification sans risque :

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

Cela confirme l'authentification de base et l'accès à la base de données sélectionnée. En cas d'échec, consultez l'erreur exacte ainsi que le nom d'utilisateur et l'hôte renvoyés par MySQL. MySQL traite le nom d'utilisateur et l'hôte conjointement lors de la correspondance avec un compte. Notez également que localhostsous Linux, une socket Unix est généralement utilisée, tandis que 127.0.0.1sous HTTP, TCP est imposé. Testez la même méthode de connexion que celle utilisée par votre configuration ownCloud :

mysql -u oc_app -p -h 127.0.0.1 owncloud

Les paramètres de la base de données ownCloud sont-ils corrects ?

Examinez le fichier actif config/config.phpdans le répertoire d'installation d'ownCloud. La documentation de configuration d'ownCloud répertorie le type de base de données, son nom, l'utilisateur et le mot de passe ; son guide de base de données indique également l'hôte et le préfixe des tables. Une configuration MySQL typique ressemble à ceci :

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

Vérifiez l'orthographe, les espaces superflus, la validité du mot de passe, l'orthographe du nom de la base de données (avec une casse différente) et l'adresse IP du serveur. Conservez le reste du fichier, y compris le secret de l'instance et le répertoire de données. Ne remplacez pas la totalité de la configuration par cet exemple.

Après modification, vérifiez que le fichier est un fichier PHP valide en utilisant le binaire PHP de votre installation :

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

Votre chemin d'installation peut varier. Limitez l'accès à ce fichierconfig.php ; il contient des identifiants de base de données et d'autres données sensibles.

Le pilote MySQL de PHP est-il activé pour l'application web ?

Le guide de la base de données d'ownCloud 10 nécessitepdo_mysql : [instructions manquantes]. Vérifiez la version de PHP et les modules chargés :

php -v
php -m | grep -i pdo_mysql

Si le module est manquant, installez le paquet MySQL PDO correspondant à votre version de PHP, puis redémarrez ou rechargez le serveur web ou le pool PHP-FPM concerné. Les noms des paquets varient selon les distributions (Ubuntu, Debian, SUSE, Red Hat) et les images de conteneurs. Un module activé pour PHP en ligne de commande peut ne pas l'être pour Apache ou PHP-FPM ; vérifiez donc également la configuration PHP de l'environnement d'exécution web. Évitez de publier une page de diagnostic contenant des informations de configuration PHP.

Le paramètre du socket ou de l'hôte est-il incorrect ?

Sous Linux, un client MySQL peut utiliser un socket Unix pour les connexions réseau localhost, tandis que les connexions réseau 127.0.0.1utilisent TCP. Si MySQL est installé sur la même machine, vérifiez si la variable d'environnement PHP mysql.default_socketpointe bien vers le fichier socket créé par le serveur de base de données. Comparez les paramètres de socket et de port du serveur de base de données avec ceux de PHP et la valeur d'hôte d'ownCloud.

Si MySQL est distant, localhostil s'agit de la machine ownCloud et non du serveur de base de données. Configurez plutôt le nom d'hôte accessible de la base de données et assurez-vous que MySQL écoute sur l'interface prévue. Un pare-feu ou une restriction d'accès local bind-addresspeut empêcher l'accès distant, même si les commandes de base de données locales fonctionnent. Limitez l'accès à l'adresse privée du serveur d'applications.

Le compte MySQL et ses autorisations correspondent-ils à l'hôte client ?

Les comptes MySQL comprennent un nom d'utilisateur et un nom d'hôte. Par conséquent, 'oc_app'@'localhost'il 'oc_app'@'10.0.0.25's'agit d'entrées de compte distinctes. Utilisez une connexion d'administrateur pour examiner les comptes disponibles et les autorisations du compte correspondant.

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

Si le compte est absent et que la base de données existe déjà, créez un compte dédié et accordez-lui des privilèges uniquement sur la base de données ownCloud. Remplacez la base de données, l'hôte et le mot de passe d'exemple par vos valeurs réelles.

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

Pour une base de données distante, utilisez l'adresse IP réelle du serveur d'applications dans la définition du compte. Évitez d'utiliser un hôte générique ou des privilèges globaux comme solution de fortune, et n'exécutez pas ownCloud en tant que root MySQL. Si le compte existe déjà, vérifiez ses droits d'accès et réinitialisez le mot de passe de manière appropriée plutôt que de créer des comptes dupliqués. Testez à nouveau la connexion depuis le serveur ownCloud.

Comment confirmez-vous la réparation ?

Après avoir modifié un élément à la fois, vérifiez que la connexion à la ligne de commande MySQL fonctionne depuis l'hôte ownCloud, que l'environnement d'exécution PHP web est opérationnel pdo_mysqlet que les journaux ownCloud ne signalent plus d'exception de connexion. Rechargez le site et effectuez une opération de lecture/écriture basique uniquement une fois l'instance de nouveau disponible.

Si la connexion en ligne de commande réussit mais qu'ownCloud échoue toujours, comparez le formulaire d'hôte, le compte, le nom de la base de données et l'environnement d'exécution PHP utilisés par le processus web avec le test fonctionnel. Consultez les journaux du serveur web ou de PHP-FPM au moment de la requête. Pour un serveur déjà installé, réparez soigneusement sa configuration existante ; ne supprimez pas la base de données et n'effectuez pas une nouvelle installation pour tenter de résoudre le problème rapidement.

Pour plus d'informations, consultez le guide de configuration et de dépannage de la base de données ownCloud Server 10.16 , le guide de configuration d'ownCloud 10.15 et les guides officiels de MySQL relatifs au dépannage des connexions et aux erreurs d'accès refusé . Les noms de service, les commandes et les paramètres exacts dépendent de votre système d'exploitation et de votre déploiement.

Laisser un commentaire

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Comparez 10 outils de balayage ping pour une découverte rapide du réseau local, une analyse multiplateforme et la gestion des adresses IP. Découvrez ce qu'un balayage peut – et ne peut pas – vous révéler.

6 outils de gestion de réseau performants pour le suivi des performances

6 outils de gestion de réseau performants pour le suivi des performances

Comparez six outils de gestion de réseau pour la surveillance des performances, notamment la couverture SNMP, la cartographie, les alertes, les modèles de déploiement et les compromis en matière de coûts.

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Comparez sept moniteurs de ping gratuits et open source, allant des suites réseau complètes aux sondes de latence ciblées, et choisissez celui qui convient le mieux à vos besoins en matière de disponibilité, de perte de paquets et d'historique.

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Comparez les meilleurs analyseurs Wi-Fi pour Windows, iPhone et Android, incluant des outils pour la congestion des canaux, la couverture du signal, les cartes thermiques et le dépannage réseau.

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

Découvrez ce que signifie la QoS dans le domaine des réseaux, comment les marquages ​​DSCP et les files d'attente de trafic priorisent la voix, la vidéo et les applications professionnelles, et ce que la QoS ne peut pas corriger.

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Comparez les logiciels serveurs SFTP fiables pour Windows et Linux, notamment OpenSSH, Bitvise, SolarWinds et SFTPGo. Trouvez la solution idéale pour vos besoins en matière de sécurité et de transfert de fichiers.

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Comparez sept outils de gestion d'adresses IP pour la découverte de sous-réseaux, la coordination DNS et DHCP, l'inventaire réseau et l'IPAM open source.

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Mettez en place une surveillance réseau pratique avec une couverture claire des périphériques, des indicateurs de performance utiles, des alertes exploitables et une comparaison de SolarWinds NPM, PRTG et OpManager.

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Comparez les outils d'analyse réseau pour la découverte rapide des périphériques, les analyses IP multiplateformes et la gestion des identités et des accès IP (IPAM) d'entreprise, avec des conseils pour adapter chaque option à votre réseau.

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Utilisez l'option --traceroute de Nmap pour associer les sauts à un hôte autorisé, comprendre les résultats des sauts et du RTT, et résoudre les problèmes de réponses manquantes sans sur-analyse.