Aller au contenu

Erreur : "The MySQL driver is not currently installed"


Messages recommandés

Bonjour,

J'ai installé matomo sur le serveur web de mon NAS. Matomo fonctionne très bien mais me demande de créer un crontab. Je m'y attaque et lance manuellement le crontab pour vérifier son bon fonctionnement. Et c'est là que j'ai ce message : "The MySQL driver is not currently installed".

2123366480_MySQLDriver.jpg.816f31763a0ead3f4a149261323a132a.jpg

Je ne comprends pas. J'ai installé Apache 2.4, PHP 7.4 et PHP 8.0, phpMyAdmin et MariaDB 10 pour que matomo fonctionne. Que veut-il de plus ?

Merci pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

il y a 42 minutes, PiwiLAbruti a dit :

Vérifie que le port configuré dans les paramètres MySQL de Matomo est bien le 3307.

Mais c'est pas grave.

En fait, ça doit plutôt venir de l'extension PHP pdo_mysql qui n'est pas activée dans Web Station > Paramètres du langage de script > Sélectionner le profil PHP > Bouton [Modifier] > Onglet Extensions.

Lien vers le commentaire
Partager sur d’autres sites

il y a 48 minutes, PiwiLAbruti a dit :

Vérifie que le port configuré dans les paramètres MySQL de Matomo est bien le 3307.

Désolé, je ne sais pas où trouver les paramètres MySQL de Matomo...

En ce qui concerne les profils PHP je suis allé voir leurs extensions. Oui, j'ai 2 profils PHP, un pour phpMyAdmin qui a longtemps embêté le monde car il ne fonctionnait que sous PHP 5.6 et qui aujourd'hui il ne fonctionne que sous PHP 7.4 et un autre pour Matomo qui m'a signalé que PHP 7.4 arrivait en fin de vie et qu'il fallait installer PHP 8.0.

1234085119_PHPproflis.jpg.e3fb80377bf7d3d2b3da2b069908f886.jpg

Les extensions des 2 profils sont toutes activées ! Au passage j'ai remarqué qu'il y avait 4 pdo_quelque-chose qui sont 4 drivers.

En rapport avec mon souci du jour, j'ai lu sur cette page quelque chose qui m'a interpellé : "The crontab requires php-cli or php-cgi installed." Et dans le message d'erreur de mon premier message on voit qu'il fait état de "CLI mode: 1". Pour moi c'est de l'hébreu... Mais le début d'une solution ne se trouverait-il pas là ?

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Bon, j'abandonne. Après des heures de recherches, voilà où j'arrive :

Matomo1.thumb.jpg.fbba3ab2f4e24130fb7d15f07ab80657.jpg

Et aussi :

Matomo2.thumb.jpg.ebffe5601b6aeb0eb2b71fd51c5ead27.jpg

Un crontab est un script, non ? J'espère ne pas dire de bêtise en prétendant qu'un script s'apparente à des lignes de commandes (CLI). Et je viens de découvrir que ce genre de process n'est pas supporté par les NAS Synology.

Ce n'est pas ce qu'il y a de plus grave. Mais ce qui est énervant c'est que ce matomo qui sait tout de ma configuration, au point de me signaler un tout petit fichier perdu au fond de l'arborescence qu'il faut mettre en Lecture-Ecriture, sait donc tout aussi bien qu'il se trouve sur un Synology. Mais il persiste à me dire en permanence via un Warning qu'il faut que je crée un crontab alors que c'est impossible... Il va falloir que je fasse avec.

Je n'ai trouvé aucun bypass.

Lien vers le commentaire
Partager sur d’autres sites

C'est probablement dû au fait que Matomo exécute un script PHP avec l'exécutable php par défaut situé dans /bin/php :

Le problème est que ce script a apparemment besoin de MySQL via un driver PDO, et là ça coince :

$ which php
/bin/php

$ php -m |grep -i 'pdo'
PDO
pdo_sqlite

Solution possible : remplacer php par une autre version dans le script de Matomo.

On va d'abord lister les exécutables PHP disponibles :

$ ls -al /usr/local/bin/php* |grep -P 'php\d+ '
lrwxrwxrwx 1 root root 47 Jan  9 10:12 /usr/local/bin/php74 -> /var/packages/PHP7.4/target/usr/local/bin/php74
lrwxrwxrwx 1 root root 47 Jan  9 10:12 /usr/local/bin/php80 -> /var/packages/PHP8.0/target/usr/local/bin/php80

Dans l'exemple ci-dessus, PHP 7.4 et 8.0 sont disponibles. On vérifie comme précédemment la présence de l'extension pdo_mysql :

$ php80 -m |grep -i 'pdo'
PDO
pdo_dblib
pdo_mysql
pdo_pgsql
pdo_sqlite

Si le script de Matomo utilise un shebang (première ligne du script), le plus simple est de le remplacer par celui-ci :

#!/bin/env php80

Sinon il faut pouvoir remplacer php par php80 dans la commande exécutée par la tâche planifiée.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci @PiwiLAbrutipour cette tentative. Et surtout merci de m'avoir mis un lien vers le "shebang" ! J'savais pas... Mais rien à faire, ça ne fonctionne pas. Comme je l'ai dit précédemment, je laisse tomber et je te propose d'en faire autant.

Bonne soirée.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.