forum

Discussions Générales » [Réglé] Problème de configuration mysql

Booster Roquette

rank_3.png

Avatar

Inscrit le: 17/01/2016

Messages: 300

Le 25/10/2017 à 10h38
Bonjour

Je cherche à résoudre un problème lié à l'installation de piwik j'explique donc dans l'ordre comment j'ai procédé.

La configuration est debian 8 avec ispconf mysql php 5.6.30-0+deb8u1

À l'installation de piwik, aucun message d'erreur tout marche impeccable le premier jour
J'ai installé piwik dans un sous domaine et donc un serveur à part via ispconf

Le chargement des widgets se solde par un message d'erreur et depuis l'url de

Code :
/piwik/index.php?module=Installation&action=systemCheckPage&widget=undefined&idSite=1&period=day&date=yesterday&showtitle=1&random=5144


il ressort des problèmes avec les capacité de la base de données et de droits.

Code :
LOAD DATA INFILE
L'utilisation de LOAD DATA INFILE va grandement accélérer la vitesse du processus d'archivage de Piwik. Pour le rendre disponible à Piwik, essayez de mettre à jour PHP & MySQL et assurez vous que votre utilisateur MySQL a les privilèges de FILE.
Si votre serveur Piwik traque des sites à grand trafic, (ex > 100 000 pages par mois), nous recommandons d'essayer de résoudre ce problème.
Erreur: LOAD DATA INFILE failed... Error was:
Try #1: LOAD DATA INFILE : SQLSTATE[28000]: Invalid authorization specification: 1045 Access denied for user 'XXX'@'%' (using password: YES)[28000]
Troubleshooting: FAQ on piwik.org  



Pour résoudre le problème j'ai du procéder de la sorte (j'ai pris des notes pour être sur de les retrouver)

Configuration serveur mysql



Modifier la configuration du serveur sql

Code :
nano  /etc/mysql/my.cnf


Aller à la section [mysqld] et lui ajouter les 2 lignes suivantes

Code :
[mysqld]
local-infile    = 1
secure-file-priv = ""  


Pareil pour la section [mysql]

Code :
[mysql]
local-infile    = 1
secure-file-priv = ""  


Code :
service mysql restart


Rectifier les droits


Code "SQL :
mysql> USE piwikdatabase
mysql>select user,secure_File_priv from mysql.user;
+------------------+-----------+
| user             | File_priv |
+------------------+-----------+
| root             | Y         |
| root             | Y         |
| root             | Y         |
| root             | Y         |
| debian-sys-maint | Y         |
| phpmyadmin       | N         |
| roundcube        | N         |
| ispconfig        | N         |
| XXXXXXXXXXX      | N         |
| userpiwik        | N         |
+------------------+-----------+
11 rows in set (0.00 sec)  

Changer les droits

Code :
mysql> GRANT FILE ON *.* to userpiwik@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> exit  


Configuration de piwik



Dans la section [General] du fichier de configuration de /piwik/config/config.ini.php lui ajouter

Code :
enable_load_data_infile= "1" 


Code :
service mysql restart


Piwik peut retourner ce genre d'erreur:

Code :
ERROR 13 (HY000): Can't get stat of '/tmp/assets/fichiers.scv' (Errcode: 13)


Un coup de chmod la dessus ...

Code :
/tmp# chmod -R 755 assets/ 


Et plus d'erreur avec piwik mais il y a toujours un mais:

Impossible de ce connecter à mysql depuis un terminal



Code :
mysql: unknown variable 'secure-file-priv='


Donc voilà ou j'en suis c'est à dire que si j'ajoute la variable secure-file-priv = "" piwik fonctionne mais je n'accède plus à mysql depuis mon terminal alors que par phpmyadmin oui :what

Donc ce que je fait c'est que j'édite le fichier de conf mysql

Code :
 nano  /etc/mysql/my.cnf


Commenter les lignes
Code :
[mysqld]
local-infile    = 1
# secure-file-priv = ""

Code :
[mysql]
local-infile    = 1
# secure-file-priv = ""


Redémarrer le serveur sql ..
mais bon c'est moyen comme procédé non ?

Avez vous une soution ou une piste à explorer ?



Edité par smaj Le 25/10/2017 à 10h40
   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 5719

Le 25/10/2017 à 11h16
Bonjour,

déjà avant de faire ce genre de manipulation est-ce que vous êtes sûr un site à fort trafic, car sinon cette manipulation est inutile (comme écrit dans la FAQ de piwik).

Aussi il peu y avoir un problème selon la version php, open_basedir et/ou me module mysql utilisé (mysql vs mysqlnd : Cf : https://github.com/piwik/piwik/issues/11088).

Sinon normalement il faut juste mettre
Code TEXT :
local-infile    = 1
et si on veux sécuriser le tout il faut mettre
Code TEXT :
secure-file-priv = "/path/to/piwik/file"
dans la section mysqld (serveur) et surtout pas dans la section mysql (client).
mais il faut bien savoir que si par défaut c'est désactivé c'est pour une question de sécurité, donc sauf si piwik le nécessite vraiment (car le site à plus de 100k pages/vus/mois.

Quelques liens :
  • https://piwik.org/faq/troubleshooting/faq_194/
  • https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_secure_file_priv


Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   

Booster Roquette

rank_3.png

Avatar

Inscrit le: 17/01/2016

Messages: 300

Le 25/10/2017 à 11h39
Dit comme ça ça prend tout son sens !

Citation :
dans la section mysqld (serveur) et surtout pas dans la section mysql (client).
mais il faut bien savoir que si par défaut c'est désactivé c'est pour une question de sécurité


Oui c'est justement ce qui me faisait peur ...

Mais du coup expliqué comme tu viens de l faire c'est plus clair que la doc en anglais.

En plus je me suis fié à ce que j'ai pu glaner sur le net et nous pouvons constater que certaines infos sont carrément foireuses ce pourquoi je vous ai soumis mon problème.

Ce que je ne comprend pas c'est lien avec le plantage du chargement des widgets et le fait d'insérer ou non cette règle et qui semble agir sur le comportement de l'interface bizarre :| mais bon tu viens de me retirer une belle épine du pied encore une fois janus57 :) et en plus je n'ai plus d'erreur dans piwik.
   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 5719

Le 25/10/2017 à 11h56
Bonjour,

pour le coup il faut inspecter les logs, sa fait un petit moment que je n'utilise plus piwik (car les stats je m'en fou complètement pour le moment).

Après cela peu aussi dépendre de la configuration de ISPConfig, plus précisément du moteur PHP (de mémoire il y a 2 ou 3 moteurs PHP qui sont mod_php, fastcgi/cgi, php-fpm).

Sachant que par défaut piwik va générer une archive des stats à chaque connexion (ou pratiquement) il est peut être utile de mettre en place le cron (pour le coup ça c'est une bonne idée que suggère le rapport piwik).

Enfin comme dit plus haut perso je toucherais pas à la config MySQL à moins que piwik est réellement un impact négatif visible sur les perfs, car là sans la présence d'un secure-file-priv non vide (voir doc mysql) c'est pas trop secure si un site se fait injecter car le pirate peu importer (et surtout exporter) dans un fichiers (de quoi vider une bdd en quelques secondes).

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   

Booster Roquette

rank_3.png

Avatar

Inscrit le: 17/01/2016

Messages: 300

Le 25/10/2017 à 13h00
Je vais vérifier les points que tu soulève. Cela dit c'est nul d'avoir été pondre une pareille chose surtout si c'est aussi dangereux que tu le dit.



   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 5719

Le 25/10/2017 à 13h05
Bonjour,

Pour sa qu'il faut restreindre seulement et uniquement au répertoire où sont les fichiers sql que piwik utilisé et qu'ils faut un SDI/IDS pour surveiller le tout vu qu'un logiciel sans faille n'existe pas.

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   

Booster Roquette

rank_3.png

Avatar

Inscrit le: 17/01/2016

Messages: 300

Le 25/10/2017 à 13h42
Bon voilà,

J'ai donc virer la règle # secure-file-priv = chemin/piwin/tmp/assets/
J'ai laissé local-infile = 1
J'ai supprimer les privilèges GRANT de mon utilisateur sql/piwik
J'ai modifié mon fichier de configuration piwik et surtout j'ai fait attention à la syntaxe car sur la doc de piwik par exemple il n'y a pas les " " .

Code PHP :
enable_load_data_infile= "0"
enable_sql_optimize_queries = "0"
session_save_handler = "dbtable"


Coté log par contre je ne sais pas trop quoi chercher en fait.
Si je prend les logs du site piwik j'ai pas ml de d'erreurs de ce style

Code TEXT :
 [Wed Oct 25 08:59:54.501836 2017] [:error] [pid 29975] [client 90.108.129.85:55868] PHP Fatal error:  Cannot redeclare class Piwik\\Plugins\\BulkTracking\\Tracker\\Requests in Cannot redeclare class Piwik\\Plugins\\BulkTracking\\Tracker\\Requests on line 16, referer: 
 


Coté ispconf on a Fast-CGI - CGI - SuPHP - Mod-PHP - PHP-FPM - HHVM


   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 5719

Le 25/10/2017 à 13h46
Bonjour,

Citation :
J'ai donc virer la règle # secure-file-priv = chemin/piwin/tmp/assets/
J'ai laissé local-infile = 1
J'ai supprimer les privilèges GRANT de mon utilisateur sql/piwik
J'ai modifié mon fichier de configuration piwik et surtout j'ai fait attention à la syntaxe car sur la doc de piwik par exemple il n'y a pas les " " .

donc il faut aussi virer le "local-infile = 1"

Pour le reste c'est à voir avec le forum piwik mais soit c'est un bug de piwik, soit la config PHP de ISPConfig (je sais que j'ai déjà eu des problèmes si on respecte pas les recommandations, pour ça que mon panel ISPConfig est à l'abandon [toujours MàJ cependant] en attente de réinstallation).

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté