next up previous contents index
Search Next: Logfiles in die Datenbank Up: Logfiles mit MySQL analysieren Previous: Logfiles mit MySQL analysieren   Contents   Index

Erstellen der Datenbank

Um das Beispiel kurz zu halten, bilden wir eine Zeile des Logfiles möglichst direkt in eine Zeile unserer Tabelle ab. Im wirklichen Leben könnte man viel Speicherplatz sparen, wenn man die vorkommenden Rechnernamen und URLs in eigene Tabellen auslagert und mit einem (möglichst kleinen) ganzzahligen Wert referenziert. Oft sind nur etwa 10% der Seiten für 95% des Traffics verantwortlich.

Da wir die Datenbank nur einmal anlegen müssen, tun wir das von Hand. Mit mysql -u root -p wird der MySQL-Client als Datenbankadministrator gestartet (wenn man das Kennwort hat). Nun erzeugen wir die Datenbank (Ordner im Dateisystem) und die eine Tabelle (Dateien in diesem Ordner), die wir benötigen. Die Tabelle request enthält den Hostnamen des anfragenden Rechners sowie die angeforderte URL.

mysql> CREATE DATABASE logs;
Query OK, 1 row affected (0.13 sec)

mysql> USE logs;
Database changed

mysql> CREATE TABLE request(
  host VARCHAR(75),
  url  TEXT
);

Query OK, 0 rows affected (0.12 sec)

mysql> show tables;
+----------------+
| Tables_in_logs |
+----------------+
| request        |
+----------------+
1 row in set (0.00 sec)

mysql> EXPLAIN request;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| host  | varchar(75)   | YES  |     | NULL    |       |
| url   | text          | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+

mysql> GRANT ALL ON logs.* TO rubychan@localhost
IDENTIFIED BY "Rubin";
Die letzte Anweisung ist äußerst wichtig, da sonst mit der vorgesehenen Benutzerkennung kein Zugriff auf die Tabelle möglich ist. Der Benutzer "`rubychan"' darf in der Datenbank "`logs"' alle Tabellen lesen, beschreiben, überall Daten löschen, sogar Tabellen anlegen und löschen, wenn er sich mit dem Kennwort "`Rubin"' ausgewiesen hat.


next up previous contents index
Search Next: Logfiles in die Datenbank Up: Logfiles mit MySQL analysieren Previous: Logfiles mit MySQL analysieren   Contents   Index
(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20