Ich versuche gerade von MySQL auf PostgreSQL umzusteigen. PostgreSQL soll ja mehr eine SQL Datenbank als MySQL sein. Wo genau die Unterschiede liegen würde mich auch interessieren. Dabei treten bei mir schon Probleme auf, wenn ich nur mit dem Server verbinden möchte. Ich hätte gerne einen Benutzer namens imagedb und dazu eine passende Datenbank, die ebenfalls imagedb heißt. Also habe ich einen neuen Benutzer namens imagedb angelegt:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10: |
[axel@tecton axel]$ su
Password:
[root@tecton axel]# su postgres
bash-2.05b$ createuser imagedb
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
bash-2.05b$
|
Der soll jetzt noch eine Datenbank bekommen.
1:
2:
3:
4:
5:
6:
7: |
bash-2.05b$ createdb --username=imagedb imagedb
psql: FATAL: IDENT authentication failed for user "imagedb"
createdb: database creation failed
bash-2.05b$
|
Das interessante ist, ich kann einen Benutzer axel und eine Datenbank axel anlegen und mit der auch arbeiten, solange
ich psql als Systembenutzer axel aufrufe. Aber das kann doch nicht wahr sein, das ich erst einen Systembenutzer imagedb anlegen muss, um einen gleichnamigen Datenbankaccount zu nutzen. Auch ist mir noch nicht ganz klar, wie man eine Datenbank anlegen können soll, wenn man psql erst starten kann, wenn man mindestens eine Datenbank angelegt hat. Ich hab dann weiter versucht, mit phpPgAdmin auf den Server zuzugreifen. Ich hatte etwas ähnliches wie phpMyAdmin erwartet, wurde jedoch von einem Loginprompt begrüßt, den ich bisher nicht überwinden konnte. Immer bekomme ich ein "Login failed", selbst wenn ich mich als postgres einloggen möchte. In der FAQ zu phpPgAdmin steht dazu, man soll die Logdatei von PostgreSQL nach der genauen Fehlerursache untersuchen:
1:
2:
3:
4: |
[root@tecton axel]# more /var/log/postgresql
[root@tecton axel]#
|
So viel kann ja nicht falsch sein. Weiter soll man in einer Datei "pg_hba.conf" nachsehen, ob der Zugriff auf den Server richtig eingestellt ist. Eine solche Datei gibt es auf meinem System nicht, jdenfalls hat sie der Konqueror nicht gefunden. Es gibt lediglich "/usr/share/pgsql/pg_hba.conf.sample" und dieser Datei ist zu entnehmen, das beim Defaultzugriff jeder alles sehen darf. Daran kann es also auch nicht liegen. Mein erster Gedanke war, das mein php evtl. nichts mit PostgreSQL anfangen kann, aber pgsql wird gleich hinter mysql aufgezählt, wenn ich phpinfo() aufrufe. Die Konfigurationsdatei von phpPgAdmin habe ich soweit angepasst, obwohl die Standardeinstellungen eigentlich auch funktionieren sollten