Cơ sở dữ liệu PostgreSQL được lưu trữ trên máy tính của tôi ở đâu?


7

Vì vậy, đây có thể là một câu hỏi ngu ngốc, nhưng tôi thực sự mới đối với điều này. Vì vậy, tôi đang tạo một cơ sở dữ liệu Postgres trên máy chủ postgres, mà tôi đã bắt đầu với lệnh này:

sudo -u postgres psql

Và sau đó tôi đã thực hiện lệnh:

CREATE DATABASE database;

Mà được cho là đã tạo ra cơ sở dữ liệu. Nhưng cơ sở dữ liệu này ở đâu? Tôi có thể tìm thấy nó ở đâu trên máy tính của tôi?


1
Tại sao bạn muốn biết điều đó? Sử dụng pg_dump để sao lưu.
Luc M

2
Tôi khuyên bạn nên bắt đầu với postgresql.org/docs/civerse/static/tutorial.html . Và bạn đã không khởi động PostgreSQL bằng psqllệnh, bạn đã kết nối với nó ; nó là một máy chủ và psqllà máy khách
Craig Ringer

1
"Cơ sở dữ liệu" không phải là một tệp mà bạn có thể mang theo bên mình hoặc xem. Một máy chủ cơ sở dữ liệu quản lý điều này khác với ví dụ như Microsoft Access.
a_horse_with_no_name

Câu trả lời:


9

Nơi chính xác dữ liệu của bạn được lưu trữ tùy thuộc vào cách bạn cài đặt và định cấu hình PostgreSQL. Chạy

show data_directory

lệnh như người dùng postgres (từ bên trong công cụ psql hoặc máy khách khác) sẽ cho bạn biết nó ở đâu. Ví dụ: nếu bạn đã cài đặt nó từ kho lưu trữ debian hoặc ubfox, bạn có thể sẽ tìm thấy các tệp dữ liệu của mình ở đâu đó như /var/lib/postgresql/9.2/main.

Có lẽ không có gì thú vị khủng khiếp ở đó. Đôi khi có một vài tệp cấu hình như pg_hba.conf (phiên bản windows đặt chúng ở đó ít nhất) nhưng nếu bạn đang dùng debian, bạn sẽ tìm thấy những tệp đó dưới / etc / postgresql /.

Nếu bạn đang mong đợi cơ sở dữ liệu của mình là một tệp duy nhất mà bạn có thể di chuyển giữa các hệ thống, v.v., có lẽ bạn nên sử dụng một cơ sở dữ liệu nhúng đơn giản hơn như sqlite.


6

Để xem thư mục dữ liệu ở đâu, hãy sử dụng truy vấn này.

show data_directory;

Để xem tất cả các tham số thời gian chạy, sử dụng

show all;

Bạn có thể tạo không gian bảng trong các phần khác của hệ thống tệp. Để xem vị trí của không gian bảng, có thể ở đâu đó trong hệ thống tệp bên cạnh thư mục dữ liệu, hãy sử dụng truy vấn này.

SELECT * FROM pg_tablespace;

+1 khi đề cập đến không gian bảng (và cách lấy thông tin).
Erwin Brandstetter 16/03/13

1

khi bạn thực thi lệnh "CREATE DATABASE cơ sở dữ liệu", nó sử dụng không gian bảng pg_default;

bạn có thể tạo không gian bảng của riêng mình trước, chẳng hạn như

CREATE TABLESPACE tbs_01 [ OWNER user_name ] LOCATION 'directory';

và hơn là tạo cơ sở dữ liệu của bạn:

CREATE DATABASE datname
WITH  OWNER = user_name 
      TEMPLATE = template0 
      ENCODING = 'UTF8' 
      TABLESPACE = tbs_01;

0

Mọi người đã trả lời nhưng chỉ để cập nhật mới nhất. Nếu bạn muốn biết tất cả các tệp cấu hình nằm ở đâu thì hãy chạy lệnh này trong trình bao

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';

0

Debian / Ubuntu

Ubuntu và Debian hiển thị tất cả những thứ này với pg_lsclusters- một trong nhiều tiện ích quản trị viên mà họ thêm vào . Đầu ra trông giống như thế này

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

Nếu bạn chỉ muốn thư mục Dữ liệu, thì | cut -d " " -f 6

pg_lsclusters -h | cut -d " " -f 6
/var/lib/postgresql/9.5/main
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.