From Amarok Wiki

Deutsch | English| 简体中文


Warnung: PostgreSQL wird von Amarok 2 nicht mehr unterstützt

amaroK unterstützt zusätzlich zur eingebauten SQLite-Datenbank auch PostgreSQL als Datenbank. Um die Unterstützung für PostgreSQL mit zu kompilieren muss beim Aufruf von "configure" der Parameter "--enable-postgres" mit übergeben und nochmals "make install" als root aufgerufen werden. Der Aufruf von configure könnte so aussehen:

$ ./configure --enable-postgres

Nachdem der postgres-Daemon gestartet wurde, muss ein Benutzer anlegt werden, falls das nicht bereits gemacht wurde. Als Beispiel wollen wir den Benutzer "dude" anlegen:

su - postgres
create user -P dude
  • Anmerkung: Die Option "-P" legt einen Benutzer mit Passwort an. Für mehr Informationen nutzen Sie:
create user --help

Bei Erfolgreicher ausführung kann man nun eine neue Datenbank als Benutzer "dude" anlegen.

exit
createdb amarokcollection

Mit dem Befehl

psql amarokcollection

kann nun auf auf die Datenbank zugegriffen werden

Sollte ein Fehler ausgegebn werden, der besagt, dass die Datenbank 'root' nicht existiert, dann wurde der Datenbankname nicht mit angegeben. 'root' ist die Standarddatenbank, die geladen wird, falls keine Datenbank mitangegeben wurde.

Sollte die Datenbank aus welchem Grund auch immer gelöscht werden müssen, funktioniert das mit:

dropdb amarokcollection

In amaroK nun "Einstellungen > amaroK einrichten > Sammlung" aufrufen. Hier 'PostgreSQL' als Datenbanktyp auswählen. Nun muss folgendes angeben werden: der Rechner (wahrscheinlich "localhost"), der Port (Standard ist 5432) und der Namen der Datenbank, die für amaroK angelegt wurde. Zusätzlich sind Benutzername und Passwort des Benutzers anzugeben, der Schreibzugriff auf die angegebene Datenbank hat.

"surfsup" ist das Passwort für den oben angelegten Benutzer "dude".

PostgreSQL-Remote-Server Wissen: Die meisten PostgreSQL-Installationen lauschen standardmäßig nicht auf "remote tcp_ip sockets" und der Postmaster-Daemon lauscht nur auf localhost.

Sollten Fehler, die das Fehlschlagen der Verbindung zum Server oder Datenbank melden (keine durch falsche Passwörter verursachten Fehler), auftauchen, dann muss noch das Startup-Skript anpasst werden, dort einfach den Parameter "-i" für den Postmaster verwenden.

Auf SUSE Linux 9 & 10 Systemen bearbeiten Sie "/etc/sysconfig/postgresql" und fügen "-i" zur Variable POSTGRES_OPTIONS hinzu.

Für viele andere Systeme muss in "/var/lib/pgsql/data/postgresql.conf" die "listen_addresses"-Option für alle IP-Adressen aufdenen der Postmaster lauschen soll eingestellt werden.

Starte den PostgreSQL-Daemon neu. Nun ist es an der Zeit die (hoffentlich vorhandene) Firewall entsprechend anzupassen.

Contents

PostgreSQL und mehrere Benutzer

Du hast eine amaroK PostgreSQL-Datenbank und willst mehreren Benutzern Zugriff gewähren, ohne die Lieblingsmusik der einzelnen Benutzer zu vermischen? Dies kann für PostgreSQL durch das Benutzen von Schemas gelöst werden. Jedoch sollte ein wenig Basiswissen über PostgreSQL vorhanden sein, bevor man sich daran versuchen.

Schnellanleitung

create user <user> password '<password>';
create schema authorization <user>;
create table <user>.statistics as select * from statistics where false;
create unique index "statistics_url_key" on <user>.statistics(url);
create index "percentage_stats" on <user>.statistics(percentage);
create index "playcounter_stats" on <user>.statistics(playcounter);
create index "url_stats" on <user>.statistics(url);
grant all on <user>.statistics to <user>;

Ausführlicher Anleitung

Verbindung zu der amaroK PostgreSQL-Datenbank herstellen.

create user <user> password '<password>';

<user> und <password> müssen natürlich durch passende Werte ersetzt werden, wie z.B. "anotherdude" und "surfsout".

create schema authorization <user>;

Durch erstellen eines Schemas für den neuen Benutzer kann PostgreSQL anwiesen werden, zuerst in diesem Schema nach einer Tabelle zu suchen und danach im öffentlichen Schema.

create table <user>.statistics as select * from statistics where false;

Dieses Kommando erstellt eine Tabelle mit dem Namen "statistics" in dem gerade erstellten Schema. In dieser Tabelle werden Daten über die Musikvorlieben gespeichert.

create unique index "statistics_url_key" on <user>.statistics(url);
create index "percentage_stats" on <user>.statistics(percentage);
create index "playcounter_stats" on <user>.statistics(playcounter);
create index "url_stats" on <user>.statistics(url);

Diese Kommando erstellen Indize um die Abfragen (queries) zu beschleunigen. Der erste Index ist ein eindeutiger Index um Duplikate zu vermeiden. Nichts magisches, oder ;-)

grant all on <user>.statistics to <user>;

Dieses Kommando gibt dem neuen Benutzer ausreichende Rechte um die Voreinstellungen zu speichern. Diesen Schritt nicht vergessen, er ist sehr wichtig :-)

Ein anleitendes Beispiel

create user anotherdude password 'surfsout';
create schema authorization anotherdude;
create table anotherdude.statistics as select * from statistics where false;
create unique index "statistics_url_key" on anotherdude.statistics(url);
create index "percentage_stats" on anotherdude.statistics(percentage);
create index "playcounter_stats" on anotherdude.statistics(playcounter);
create index "url_stats" on anotherdude.statistics(url);
grant all on anotherdude.statistics to anotherdude;

Hier wird der Benutzer "anotherdude" mit dem Passwort "surfsout" erstellt. Einfach diese Zeilen verwenden um amaroK in Verbindung mit PostgreSQL einzurichten. Diese Schritte müssen für jeden Benutzer durchführt werden, der hinzugefügt wird.