Sao chép cơ sở dữ liệu PostgreSQL từ một máy chủ từ xa


9

Khi tôi đang sử dụng MySQL, tôi có thể chạy một lệnh SSH vào máy chủ của mình và sao chép cơ sở dữ liệu vào máy cục bộ của tôi.

ssh -t từ xa máy chủ 'mysqldump --compress -u dbuser --password = "password" db_name' | / usr / local / mysql / bin / mysql -u root --password = "password" local_db_name

Làm thế nào tôi có thể làm điều tương tự với PostgreSQL?

Câu trả lời:


13

Nếu máy chủ DB lấy các kết nối cơ sở dữ liệu từ máy chủ của bạn (thường là trên cổng 5432), thì bạn không cần sử dụng SSH. Trong trường hợp này, bạn cần làm như sau:

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

Nếu bạn chỉ có thể kết nối với cơ sở dữ liệu của mình từ máy chủ lưu trữ, bạn phải thêm logic SSH từ ví dụ MySQL của bạn.

Với -C, bạn sẽ nhận được một CREATE DATABASElệnh khi bắt đầu kết xuất để bạn không phải tự tạo. Lệnh trên sẽ yêu cầu mật khẩu hai lần trừ khi bạn lưu chúng trong tệp .pgpass (giả sử bạn đang ở trên linux / Unix). Ngoài ra, kết nối cục bộ có thể khác nếu DB của bạn không nghe trên TCP (trong trường hợp này chỉ cần bỏ qua -h localhostphần này).

Để biết thêm chi tiết và các tùy chọn, xem tài liệu pg_dump .


có nghĩa là bạn cần phải có cùng một mật khẩu trên cả hai máy chủ, phải không?
Florian Heigl

1
@FlorianHeigl số
dezso
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.