2013-03-08 17 views
16

UPDATE: auch auf der PgAdmin-Support-Mailingliste here gefragt.Verbinden mit einem Redshift-Cluster von pgAdmin


So habe ich einen AWS Redshift Cluster und läuft, und ich bin in der Lage, um es von der Kommandozeile zu verbinden mit

$ psql -h host -d database -p port -U username

Ich mag den Cluster durch pgAdmin verbinden III, aber nachdem ich mit dem Cluster verbinden, ich erhalte eine Fehlermeldung, die besagt:

Error: Must be superuser to view default_tablespace

Hinweis, die Felder I eingetragen waren: Name, Host, Port, Wartung DB, Usern ame und Password, die alle wie beim Befehl psql eingegeben wurden.

Nun, wenn ich über psql verbinden, und ich überprüfen:

$ \tu

Dieser Benutzer [der Benutzerstamm von AWS gewährt] ist in der Tat ein Super-User. Gibt es irgendwelche Vorschläge für die Ursache dieses Fehlers?

Als eine Follow-up-Frage, wenn ich mit anderen Remote-dbs verbinden, bekomme ich diesen Fehler nicht, obwohl ich kein Superuser bin, also was passiert hier? Was ist mit Redshift verursacht diesen Fehler bei der Verbindung über pgAdmin?

+1

Sie haben eine sehr benutzerdefinierte PostgreSQL-Variante, so dass ich nicht überrascht sein werde, wenn es nicht perfekt kompatibel ist. Was macht das Ausführen von 'show default_tablespace;' tun in 'psql', wenn eine Verbindung dazu besteht? In diesem Fall vermute ich, dass sie die internen Berechtigungen überprüft haben, um Systemdetails zu verbergen. –

+0

Von psql wirft es den gleichen Fehler!Vor 3 Tagen konnte ich mich über pgAdmin verbinden, also haben sie vielleicht etwas verändert. Kann man trotz dieses Berechtigungsproblems über pgAdmin die Tabellen in Redshift abfragen? I.e. etwas wie das Deaktivieren von pgAdmin vom Versuch, den default_tablespace zu lesen? Ich verstehe nicht wirklich, was ich sage, aber ich versuche nur herauszufinden, ob es möglich wäre, pgAdmin um dieses Problem zu hacken. – Justin

+1

Ich habe mir das nicht angesehen, aber ich vermute, dass Änderungen am Quellcode erforderlich sind, aber wahrscheinlich keine sehr komplizierten; es müsste nur seine Tablespace-Awareness ausblenden, wenn es nicht auf den GUC "default_tablespace" zugreifen konnte. PgAdmin-III ist wirklich für PostgreSQL gedacht, nicht für Drittanbieter-Varianten, aber ich nehme an, sie würden einen Patch akzeptieren. Versuchen Sie, auf der pgadmin-support-Mailingliste nachzufragen. Wenn Sie dies tun, verknüpfen Sie diese Frage mit Ihrem Post und fügen Sie hier einen Link zum Archiv Ihres Posts hinzu. –

Antwort

12

PGAdmin 1.6.3 (from March 2007!) funktioniert für mich (auf OS X) mit Redshift.

Das macht Sinn, denke ich, da Redshift von Postgres 8.0 gespalten wurde.

HINWEIS: mit "gut" meine ich die Dinge, die ich von einer GUI-Arbeit OK will. Es gibt immer noch ein paar Macken und Fehlermeldungen, die abgewiesen werden müssen.

+0

Scheint ein Problem mit der Postgres-Version zu sein. Leider funktioniert 1.6.3 nicht für unsere Zwecke, aber es ist gut zu wissen, was vor sich geht. – Justin

3

Versuchen Sie SQLWorkbench. Ich habe Pgadmin nicht versucht, aber SqlWorkbench und Postgresql JDBC-Connector funktioniert für mich perfekt.

+1

Ich habe SQLWorkbench erfolgreich verwendet, aber es gibt andere Gründe für die Verbindung mit pgAdmin. – Justin

1

Wenn alles, was Sie brauchen, ist eine GUI Art und Weise ist eine komplexe SQL zu bearbeiten und Sie nicht möchten, dass jedes Mal, wenn Sie eine Änderung vornehmen kopieren und einfügen Sie eine Bearbeitung Abkürzung

pguser=> \e 
können

Dies wird das öffnen Editor Ihrer Wahl (gespeichert auf Ihrem Rechner als $EDITOR)

es überschrieben werden nur für die Sitzungen des halten (wenn Ihr Standard vim ist aber wollen gedit verwenden) ausführen, um diese:

$ EDITOR=gedit psql -h host -d database -p port -U username 

Bearbeiten Sie Ihre SQL mit \e dann speichern und beenden. Es wird deinen Code ausführen. Öffnen Sie dann einfach erneut \e und es wird Ihren Editor mit der vorherigen Abfrage füllen.

Viel Spaß!

Verwandte Themen