मुझे PostgreSQL की डेटा निर्देशिका कैसे मिल सकती है?


123

मैं भूल गया कि मैंने पिछली बार पोस्टग्रेक्यूएल कैसे शुरू किया था (यह महीनों पहले था) और मुझे याद नहीं है कि डेटा निर्देशिका कहाँ स्थित है। postgresआदेश डेटा निर्देशिका के स्थान की आवश्यकता होती है लगता है।

मैं MacOsX पर हूँ अगर वह मदद करता है।

/usr/local/postgres मेरे मैक पर मौजूद नहीं है।

नीचे दिए गए उत्तरों का उपयोग करते हुए, मैंने पाया कि यह यहाँ था:

/usr/local/var/postgres

जब आप Postgres को स्थापित करने के लिए Homebrew का उपयोग करते हैं, तो dataहै/usr/local/var/postgres
andrerpena

जवाबों:


152

यदि आप डेटाबेस को सुपरयूजर एक्सेस से जोड़ सकते हैं, तो

SHOW data_directory;

सबसे छोटा रास्ता है।

यदि सर्वर नहीं चल रहा है और आप भूल गए कि डेटा निर्देशिका कहां थी, तो आपको वास्तव में खुद का अनुमान लगाना होगा। एक ऑपरेटिंग सिस्टम विशिष्ट सम्मेलन या शेल इतिहास संकेत प्रदान कर सकता है।


7
यदि यह नहीं चल रहा है, तो postgresql.conf के लिए एक खोज चलाने का प्रयास करें, जो आमतौर पर डेटा निर्देशिका में होता है, या डेटा निर्देशिका के बारे में जानकारी होगी।
xzilla

34

आप इसके लिए क्वेरी भी कर सकते हैं

select setting from pg_settings where name = 'data_directory';

18

pg_config डेटा निर्देशिका सहित बहुत सी जानकारी दिखाता है:

CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/9.3.2' 
            '--datadir=/usr/local/Cellar/postgresql/9.3.2/share/postgresql' 
            '--docdir=/usr/local/Cellar/postgresql/9.3.2/share/doc/postgresql' 
            '--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-krb5' 
            '--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt'
            '--with-ossp-uuid' '--with-python' '--with-perl' '--with-tcl' 'CC=clang' 
            'CFLAGS=-I/usr/local/Cellar/ossp-uuid/1.6.2/include' 
            'LDFLAGS=-L/usr/local/Cellar/ossp-uuid/1.6.2/lib' 'LIBS=-luuid'

हालांकि यह एक काढ़ा-विशिष्ट चीज हो सकती है; काढ़ा बिना मुझे नहीं पता कि यह क्या दिखाता है।


1
मैं काढ़ा भी उपयोग कर रहा हूँ। अब तक, जिस डेटादिर को सूचीबद्ध किया गया pg_config --configureहै, वह वैसा नहीं है, जैसा कि कोई brew info postgresqlअनुशंसा करता है (जो $(brew --prefix)/var/postgresसूचीबद्ध सूची का सिम्लिंक नहीं है)। ऐसा लगता है कि फ़ार्मूला ठीक से फ़्लैग फ़्लैग का उपयोग करने पर थोड़ा ढीला है।
वाज

उबन्टु / देबैन के लिए नोट: pg_config postgresql-<ver>उपयुक्त पैकेज के साथ स्थापित नहीं है , लेकिन इसके लिए भी आवश्यकता हैpostgresql-server-dev-<ver>
pscl

@ पीएससीएल सच है, लेकिन ओपी ओएस एक्स के तहत था
डेव न्यूटन

समझ लिया। डेबियन उपयोगकर्ताओं (जैसे खुद के) के भविष्य के संदर्भ के लिए बस एक नोट इस सवाल पर इसके सामान्य शीर्षक के आधार पर ठोकर खा रहा है।
Pscl

1
@Tom मुझे नहीं लगता कि सूत्र वास्तव में DATADIR कॉन्फ़िगर करने के लिए पारित कर दिया का उपयोग करने का इरादा ... यह एक कमांडलाइन आर्ग के रूप में DATADIR पारित हो जाने की उम्मीद है, तो आप देख सकते हैं कि जब यह एक सेवा के रूप स्वचालित रूप से चलाने है में पारित हो जाता है $(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist, देखो निम्नलिखित पथ के लिए -D(यह /usr/local/var/postgresमेरा है)।
वाज

16

Ubuntu \ Debian पर, pg_lsclustersकमांड का प्रयास करें ।

मेरी मशीन पर:

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory             Log file
8.4     main      5432 online postgres /home/adam/db/main/data    /home/adam/db/main/log

8

यदि आप लॉग इन नहीं कर सकते हैं (उदाहरण के लिए, अपना पासवर्ड भूल गए) लेकिन सेवा चल रही है, क्योंकि MacOS X एक पॉज़िक्स वैरिएंट है, आप हमेशा यह देखने के psलिए देख सकते हैं कि क्या यह एक तर्क के रूप में पारित हो रहा है:

दो पोस्टग्रैस इंस्टेंस के साथ एक लाइन बॉक्स पर:

-bash-3.2$ ps ax | grep postgres | grep -v postgres:
 4698 ?        S      9:59 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data
 6115 ?        S      8:16 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data_sums
30694 pts/9    S+     0:00 grep postgres

2

Postgresql.conf खोलें, लाइन पर जाएं:

data_directory='/var/lib/postgresql/main/'

आपका जवाब है


आप कहाँ पाते हैंpostgresql.conf
user5359531

@ user5359531 आप यह find / -iname "postgresql.conf" 2>/dev/nullपता लगाने के लिए कर सकते हैं
टॉम

मेरा postgresql.confकोई data_directoryपरिभाषित नहीं है। यह केवल एक टिप्पणी में संदर्भित है:#data_directory = 'ConfigDir' # use data in another directory
SimpleJ

2

OSX के लिए PostgreSQL डेस्कटॉप क्लाइंट के आधुनिक संस्करणों में एक सुविधाजनक "सर्वर सेटिंग्स" संवाद है जो आपको न केवल डेटा निर्देशिका को सूचीबद्ध करने की अनुमति देगा, बल्कि इसे सीधे खोल देगा।

बहुत उपयोगी है यदि आप एक यादृच्छिक मशीन दुर्घटना का अनुभव करते हैं जो एक लॉक फ़ाइल के पीछे छोड़ देता है।

यहां छवि विवरण दर्ज करें


यह संवाद कहां है? मुझे ऐसा कुछ भी नहीं मिल रहा है जो 9.5 के एक डायरेक्ट इन्स्टॉल (नहीं काढ़ा) पर postgresql.org/download/macosx के माध्यम से मिलता है । यह pgadmin III के साथ आता है, लेकिन ऐसा लगता है कि यह संवाद नहीं है। मुझे कोई डेस्कटॉप क्लाइंट नहीं मिल रहा है?
जॉन लिटिल

1

OS X 10.8 और 10.9 पर (10.10 नहीं) सर्वर ऐप के साथ, एक टर्मिनल विंडो में, टाइप करें

sudo serveradmin settings postgres

ओएस एक्स 10.9 मावेरिक्स पर, यह मेरे द्वारा प्राप्त आउटपुट है, जिसमें डेटा निर्देशिका शामिल है।

postgres:log_connections = "on"
postgres:unix_socket_directory = "/private/var/pgsql_socket"
postgres:listen_addresses = "127.0.0.1,::1"
postgres:unix_socket_group = "_postgres"
postgres:log_statement = "ddl"
postgres:log_line_prefix = "%t "
postgres:unix_socket_permissions = "0770"
postgres:log_lock_waits = "on"
postgres:logging_collector = "on"
postgres:log_filename = "PostgreSQL.log"
postgres:dataDir = "/Library/Server/PostgreSQL/Data"
postgres:log_directory = "/Library/Logs/PostgreSQL"

मैंने अभी Yosemite (OS X 10.10) में यह कोशिश की थी और अब पोस्टग्रैड को सर्वरडमिन (हालांकि पोस्टग्रेज स्थापित है) के तहत एक सेवा के रूप में सूचीबद्ध नहीं किया गया है।

sudo serveradmin list

पोस्टग्रेट्स की सूची नहीं है


1

विंडोज सर्वर 2012 पर, कमांड pg_configने कुछ पागल कारण के लिए डेटा निर्देशिका को प्रकट नहीं किया। लेकिन मैंने इसे फ़ाइल को देखकर पाया C:\Program Files\PostgreSQL\9.4\pg_env.bat, जिसमें यह रेखा थी:

@SET PGDATA=E:\POSTGRESQL

यही जवाब मुझे चाहिए था।


0

मानक उपयोगिता pg_config का उपयोग करने के बारे में जैसे कि pg_config --bindirPostgreSQL को संकलित करने और उन्हें पार्स करने के लिए उपयोग किए जाने वाले कॉन्फ़िगर किए गए पैरामीटर भी मिल सकते हैं।pg_config --configure


--bindirनिष्पादन निर्देशिका का स्थान दिखाता है, न कि डेटा निर्देशिका। --configureठीक है, भले ही किसी को आउटपुट को थोड़ा पार्स करना पड़े।
डेज़ो

हाँ, यह सच है और दुर्भाग्य से pg_config में कोई पैरामीटर नहीं है जो डेटाडेट को प्रकट करेगा। जब मैंने यह लिखा था, मैंने सोचा था कि कम से कम यह कुछ करीब देता है, दत्तादिर को एक विशेष स्थान पर नहीं है। डेटादिर तत्कालीन बाइंडिर के सापेक्ष होगा जैसे ../ दत्ता
जैक्स

0

जैसा कि बताया गया है, कोई भी psडेटा स्थान को पकड़ने के लिए उपयोग कर सकता है जैसे:

ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'

यह ज्यादातर समय काम करेगा। यह /usr/local/pgsql/dataलॉन्च के समय PostgreSQL के मापदंडों में या जहां कहीं भी निर्दिष्ट किया गया था , कुछ वापस आ जाएगा ।


0

मैकमैथ्यू मार्क मिलर के जवाब के आधार पर, macOS 10.14 पर पोस्टग्रेज 11 का उपयोग करके यह यहां स्थित है:

~/Library/Application Support/Postgres

0

2 शीर्ष उत्तरों से सामान्यीकरण:

कमांड-लाइन पर सीधे डेटा निर्देशिका दिखाने के लिए:

psql -U postgres -tA -c "SHOW data_directory;"

फ़ाइलों और निर्देशिकाओं के लिए अन्य सभी परिभाषित पथ भी देखें:

psql -U postgres -c "SELECT name, setting FROM pg_settings WHERE setting LIKE '/%';"

नमूना उत्पादन:

          name           |                 setting                  
-------------------------+------------------------------------------
 config_file             | /etc/postgresql/9.6/main/postgresql.conf
 data_directory          | /mnt/pg_ssd_500/9.6/main
 external_pid_file       | /var/run/postgresql/9.6-main.pid
 hba_file                | /etc/postgresql/9.6/main/pg_hba.conf
 ident_file              | /etc/postgresql/9.6/main/pg_ident.conf
 ssl_cert_file           | /etc/ssl/pg_server.cer
 ssl_key_file            | /etc/ssl/private/pg_server.key
 stats_temp_directory    | /var/run/postgresql/9.6-main.pg_stat_tmp
 unix_socket_directories | /var/run/postgresql
(9 rows)

(विंडोज पर, इसके LIKE '/%'साथ बदलें LIKE '%/%'क्योंकि पथ एक ड्राइव अक्षर से शुरू होता है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.