Moodle-Datenbank

Aus MoodleDocs
Wechseln zu:Navigation, Suche


Moodle benötigt eine Datenbank, um alle Daten darin zu speichern. Empfohlen werden MySQL oder PostgreSQL-Datenbanken, Moodle unterstützt aber auch andere Datenbanken wie Oracle und Microsoft SQL-Server. Dieser Artikel beschreibt, wie Sie eine Moodle-Datenbank und einen Nutzer anlegen, der Zugriff auf diese Datenbank hat.

Anlegen der Datenbank von Kommandozeile

Wenn Sie Direktzugriff auf die Kommandozeile eines Unix-/Linux-Systems haben, können Sie auch über Kommandozeilenaufrufe alle Arbeiten erledigen.

Hier folgen die wichtigsten Kommandozeilenbefehle für eine MySQL-Datenbank unter Verwendung eines MySQL-Clients (das, was Sie eingeben, ist fett gedruckt):

Starten Sie das MySQL-Clientprogramm:

  #mysql -u root -p
  Enter password:
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  Your MySQL connection id is 2 to server version: 5.0.22-log

Geben Sie help; oder \h ein, um die Hilfe aufzurufen. Geben Sie \c ein, um den Buffer zu leeren.

  mysql>

Das Programm wechselt zu einem Prompt "mysql>" um zu zeigen, dass Sie nun im MySQL-Clientprogramm arbeiten. Wenn Sie mit MySQL arbeiten, müssen alle Befehle mit einem Semikolon ";" enden. (Wenn Sie die ENTER-Taste drücken, ohne den Befehl mit einem Semikolon abzuschließen, erscheint das Zeilenfortsetzungssymbol "->", geben Sie also jetzt das Semikolon ein und drücken Sie nochmals die ENTER-Taste.)

Prüfen Sie als nächstes, ob es bereits eine Datenbank "moodle" gibt, falls ja ersetzen Sie "moodle" in den folgenden Befehlszeilen durch einen anderen Datenbanknamen.

  mysql> SHOW DATABASES;
  +-------------------------+
  | Database                |
  +-------------------------+
  | information_schema      |
  | mysql                   |
  | test                    |
  +-------------------------+
  3 rows in set (0.03 sec)

Legen Sie eine Datenbank an, in der die Tabellen von Moodle gespeichert werden können. Wir nennen diese Datenbank im folgenden "moodle", da dieser Name in der Liste nicht auftaucht, es eine solche Datenbank also noch nicht gibt. Sie können natürlich auch einen anderen Namen verwenden.

  mysql> CREATE DATABASE moodle;
  Query OK, 1 row affected (0.00 sec)

Ändern Sie den Zeichensatz und die Kollation der Datenbank auf UTF8 (ab Moodle 1.6):

  mysql> ALTER DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  Query OK, 1 row affected (0.00 sec)

Legen Sie einen Nutzer mit Kennwort an, der Zugriff auf diese Datenbank hat. Wir nennen den Nutzer im folgenden "moodleuser" mit dem Kennwort "yourpassword". Wir empfehlen Ihnen jedoch, für Ihre Moodle-Installation einen eigenen Nutzernamen und ein eigenes Kennwort zu wählen. Merjen Sie sich den Nutzernamen und das Kennwort, Sie benötigen es später für die Konfiguration von Moodle. Das Kommando zum Anlegen eines Nutzers ist ziemlich lang und im folgenden auf mehrere Zeilen aufgesplittet:

  mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,
      -> DROP,INDEX,ALTER ON moodle.*
      -> TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
  Query OK, 0 rows affected (0.01 sec)

Sicherheitshinweis: Verwenden Sie niemals ein Kennwort, wie hier angegeben! Verwenden Sie stattdessen ein eigenes, sicheres Kennwort (eine Mischung aus Zahlen, Groß- und Kleinbuchstaben, sowie Sonderzeichen). Vermeiden Sie es, dem Nutzer "ALLE" Rechte für die Datenbank zu geben, sondern geben Sie im nur die nötigen Rechte wie im obigen Befehl.

Anmerkung: Für MySQL-Versionen 4.0.1 und älter benötigen Sie das Recht CREATE TEMPORARY TABLES nicht. Und hier ein Beispiel für eine PostgreSQL-Datenbank:

Verlassen Sie das MySQL-Clientprogramm wieder:

  mysql> QUIT
  Bye
  #

Verwenden Sie das Programm "mysqladmin", um die Rechte neu zu laden:

  #mysqladmin -u root -p reload
  Enter password:
  #

Tipp: Für MySQL-Datenbanken gibt es ein Programm phpMyAdmin, das eine Weboberfläche zur komfortableren Administration der Datenbanken bereitstellt. Mit diesem Programm können Sie über einen Browser neue Datenbanken und Datenbanknutzer anlegen, Rechte vergeben usw.

Wenn Sie eine PostgreSQL-Datenbank verwenden, dann sehen die entsprechenden Kommandos in etwa so aus:

  # su - postgres
  > psql -c "create user moodleuser createdb;" template1
  > psql -c "create database moodle with encoding 'unicode';" -U moodleuser template1
  > psql -c "alter user moodleuser nocreatedb;" template1
  > psql -c "alter user moodleuser with encrypted password 'yourpassword';" template1
  > su - root
  # /etc/init.d/postgresql reload

Wenn der create-Befehl (>psql -c "create database moodle...") eine Fehlermeldung liefert, können Sie es mit folgendem Kommando probieren:

  > psql -c "create database moodle with template=template1 encoding = 'unicode' owner =  moodleuser 
location = '/var/mydata';"

Wenn der create-Befehl nach einem Kennwort fragt, rufen Sie die Zeile > psql -c "alter user moodleuser with encrypted password 'yourpassword';" template1, bevor Sie fortsetzen.

Anlegen der Datenbank auf einem Webhost

Wenn Sie Webspace bei einem Internetprovider gemietet haben, stellt dieser meistens eine Weboberfläche zur Verfügung, um eine Datenbank anzulegen. Am weitesten verbreitet ist das System cPanel. Um eine Datenbank mit cPanel anzulegen, gehen Sie folgendermaßen vor:

  1. Klicken Sie auf das Symbol MySQL Databases.
  2. Tragen Sie den Datenbanknamen (z.B. "moodle") in das Eingabefeld ein und klicken Sie auf "Create Database, um die neue Datenbank anzulegen.
  3. Geben Sie in den entsprechenden Feldern einen Nutzername und ein Kennwort ein (verwenden Sie ein sicheres Kennwort!) und klicken Sie auf "Create User", um den Datenbanknutzer anzulegen. Achtung: Es kann sein, dass Nutzername und Kennwort automatisch mit einem Präfix versehen werden, das aus Ihrem cPanel-Nutzernamen gefolgt von einem Unterstrich und abgeschnitten nach 16 Zeichen besteht. In der Moodle-Konfigurationsdatei müssen Sie auf jeden Fall die vollständigen Bezeichnungen (mit Präfix!) angeben.
  4. Klicken Sie auf den Button "Add Users to Databases" und geben Sie dem neu angelegten Nutzer ALLE Rechte für die neue Datenbank.

Anlegen einer SQLite-Datenbank

SQLite ist eine Software-Bibliothek, die ein relationales Datenbanksystem implementiert, dass Transaktionen unterstützt und keine weitere Server-Software und Konfiguration benötigt.

Moodle bietet Unterstützung für SQLite3-Datenbanken, aber nur experimetell, also als Testversion. In diesem Fall ist keine Datenbankonfiguration nötig. Die Datenbank wird vom Installationsskript angelegt. Standardmäßig wird die Datenbankdatei im Moodle-Datenverzeichnis gespeichert. Während des Installationsprozesses muss der Webserver Schreibzugriff auf dieses Verzeichnis haben. Nach der Installation benötigt der Webserver Lese- und Schreibrechte für die Datenbankdatei.