it-swarm.com.de

Kopieren Sie die PostgreSQL-Datenbank von einem Remote-Server

Wenn ich MySQL verwendete, konnte ich einen Befehl ausführen, der SSHs auf meinen Server übertrug und die Datenbank auf meinen lokalen Computer kopierte.

ssh -t Remoteserver 'mysqldump --compress -u dbuser --password = "Passwort" Datenbankname' |/usr/local/mysql/bin/mysql -u root --password = "Passwort" local_db_name

Wie kann ich dasselbe mit PostgreSQL machen?

9
wyred

Wenn der DB-Server Datenbankverbindungen von Ihrem Host (normalerweise an Port 5432) übernimmt, müssen Sie kein SSH verwenden. In diesem Fall müssen Sie Folgendes tun:

pg_dump -h your_db_Host -U db_user -C db_name | psql -h localhost -d local_db_name -U local_db_user

Wenn Sie nur vom Host selbst aus eine Verbindung zu Ihrer Datenbank herstellen können, müssen Sie die SSH-Logik aus Ihrem MySQL-Beispiel hinzufügen.

Mit -C Erhalten Sie am Anfang des Dumps den Befehl CREATE DATABASE, Damit Sie ihn nicht selbst erstellen müssen. Mit dem obigen Befehl werden Sie zweimal nach einem Kennwort gefragt, es sei denn, Sie speichern diese in einer . Pgpass -Datei (vorausgesetzt, Sie arbeiten unter Linux/Unix). Die lokale Verbindung kann auch anders sein, wenn Ihre Datenbank nicht auf TCP) wartet (in diesem Fall lassen Sie einfach den Teil -h localhost Weg).

Weitere Details und Optionen finden Sie unter pg_dump-Dokumentation .

13
dezso