Externe-DB -> Zugriff auf TMP-Files

Hallo,

ich hoffe dass mir hier jemand bei helfen kann:

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?

Hoffe, dass mir jemand nen Rat geben kann.

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.

Danke für den Hinweis! Das prüfe ich am Mo. natürlich noch einmal…

Aber das Sync-Problem mit den LOAD DATA INFILE’s bleibt leider noch bestehen…

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…

see this FAQ for help Troubleshooting - Analytics Platform - Matomo load data in file piwik