Und zwar versuche ich gerade ein Setup mit 1x Webserver + 1x DB-Server aufzusetzen. Sprich die Applikation und die Datenbank befinden sich auf unterschiedlichen Systemen.
Grundsätzlich funktioniert alles, nur spuckt mir Piwik folgenden Hinweis aus:
Try #1: LOAD DATA INFILE : SQLSTATE[HY000]: General error: 13 Can’t get stat of ‘/var/www/mydomain/htdocs/tmp/assets/piwik_option-8a0afc1ec5d4fe48cf7d6a5bed0952a2.csv’ (Errcode: 13),
Try #2: LOAD DATA LOCAL INFILE : SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version[42000]
Das liegt natürlich daran, weil die temp. Dateien auf dem Webserver und nicht auf dem DB-Server liegen. INFILE läuft auf dem DB-Server und sobald man ihm den Zugriff auf die temp. Dateien ermöglicht, ist auch alles super.
Da Piwik laut dem FAQ für solche Setups ausgelegt sein soll hoffe ich jedoch noch auf eine andere Möglichkeit, die ich nur noch nicht gesehen habe.
Vor allem, weil man die Sessions ja bereits über “session_save_handler = dbtable” in der DB ablegen kann. Entsprechend wäre es ja naheliegend, dass das mit den temp. Dateien auch irgendwie ohne File-Sync (rsync, drdb, memcache, etc.) geht.
Hat hier jemand Erfahrung mit solch einem Piwik-Setup und wenn ja, wie könnte eine optimale Lösung aussehen?
LOAD DATA LOCAL INFILE sollte dennoch funktionieren. Möglicherweise fehlt deinem Datenbank-Benutzer das Recht diesen Befehl zu nutzen.
LOAD DATA INFILE funktioniert natürlich nur wenn die Dateien auf dem gleichen Server wie die Datenbank liegen. Bei LOAD DATA LOCAL INFILE liegen die Dateien allerdings beim client.
So… Piwik checkt scheinbar nicht, ob INFILE wirklich funktioniert. Die Fehlermeldung
Try #2: LOAD DATA LOCAL INFILE : SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version[42000]
hätte eigentlich weiterhin angezeigt werden müssen. Die verschwindet aber, sobald die CVS aus /tmp/assets gelesen werden kann. Ein lokaler Test zeigt aber, dass es hier ein PHP-Problem gibt. Folgendes wurde dazu gefunden: https://bugs.php.net/bug.php?id=55737&edit=3
Danke für den Hinweis!
Wir versuchen jetzt den Sync über DRDB zu lösen. Ist vermutlich die schönste Lösung, da wir so keine Änderungen an Piwik selbst durchführen müssen. Ich werde dann mal berichten, wie es sich so verhält…