Ich habe einige .sql-Dateien mit Tausenden von INSERT-Anweisungen darin und muss diese Inserts auf meiner PostgreSQL-Datenbank ausführen, um sie einer Tabelle hinzuzufügen. Die Dateien sind so groß, dass es unmöglich ist, sie zu öffnen und die INSERT-Anweisungen in ein Editorfenster zu kopieren und sie dort auszuführen. Im Internet habe ich gefunden, dass Sie das Folgende verwenden können, indem Sie zum bin-Ordner Ihrer PostgreSQL-Installation navigieren:
psql -d meineDatenbank -a -f meineInsertDatei
In meinem Fall:
psql -d HIGHWAYS -a -f CLUSTER_1000M.sql
Ich werde dann nach einem Passwort für meinen Benutzer gefragt, kann jedoch nichts eingeben, und wenn ich die Eingabetaste drücke, erhalte ich diesen Fehler:
psql: FATAL: Authentifizierung für Benutzer "meinBenutzername" fehlgeschlagen
Warum lässt es mich kein Passwort eingeben? Gibt es einen Weg, dies zu umgehen, da es wichtig ist, dass ich diese Skripte ausführen kann?
Ich habe dieses Problem umgangen, indem ich einen neuen Eintrag in meiner pg_hba.conf-Datei mit folgender Struktur hinzugefügt habe:
# IPv6 lokale Verbindungen:
host meineDbName meinBenutzername ::1/128 trust
Die pg_hba.conf-Datei befindet sich normalerweise im Ordner 'data' Ihrer PostgreSQL-Installation.
9 Stimmen
Du hast bereits deine Antwort bekommen, aber nur für den Fall... "Ich kann nichts eingeben", meinst du vielleicht, dass beim Eingeben deines Passworts nichts angezeigt wird? Das ist normalerweise in diesem Fall der Fall, normalerweise sollte das Eingeben des Passworts und das Drücken von Enter funktionieren...
0 Stimmen
Ich hatte ein ähnliches Problem bei der Installation einer Kopie von ITIS (itis.gov). Die Datenbank existierte nicht, sodass ich ihren Namen nicht verwenden konnte. Aufgrund der Arbeitsweise von PostgreSQL konnte ich folgendes tun: psql --port=5554 --username=root --file=ITIS.sql template1
0 Stimmen
Beantwortet dies Ihre Frage? Wie kann ich ein Passwort für 'psql' nicht-interaktiv angeben?