PostgreSQL: निर्देशिका को / रूट में नहीं बदल सकता


13

मैं planet_osm_polygonएक डेटाबेस osmसे दूसरे में टेबल कॉपी करने की कोशिश कर रहा हूं test। मैंने su postgresऔर प्रदर्शन किया pg_dump।

समस्या: हालाँकि मुझे त्रुटि मिल रही है could not change directory to "/root"और Password:संकेत दो बार दिखाई दिया है! क्या pg_dumpलॉग इन के रूप में प्रदर्शन करने का कोई तरीका है root?

root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | 
    psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:

अपडेट करें

समस्या # 2: ऐसा प्रतीत होता है कि तालिका को publicस्कीमा में कॉपी किया गया है, भले ही मैंने ध्वज पारित किया हो --table="staging.planet_osm_polygon"। इसे स्कीमा में कॉपी क्यों नहीं किया जाता है staging?


वहाँ कोई समस्या नहीं है - पैरामीटर psql, कि समस्या का कारण हो सकता है # 2
— dezso

@ मैं उपयोग कर रहा हूं pg_dump, क्या यह वास्तव में बुला रहा है psql? postgresql.org/docs/9.1/static/app-pgdump.html
— Nyxynyx

नहीं, लेकिन आपकी कमांड लाइन में शामिल हैpsql -h localhost "test" --table "staging.planet_osm_polygon"
— dezso

@dezso ओह मुझे ध्यान नहीं आया !! मुझे लगता है कि इसे हमेशा publicस्कीमा में कॉपी किया जाएगा
— Nyxynyx

यह समस्या इसलिए है क्योंकि pgsql / निर्देशिका मौजूद नहीं है, आपको इसे / var / lib / pgsql में इस कार्य के लिए बनाना होगा .. कृपया मेरे बारे में Hiram
— Hiram Walker

जवाबों:


26

इसे आज़माएँ: Re: निर्देशिका को "/ root" में नहीं बदल सकते :

जाहिरा तौर पर आपने रूट खाते से "su postgres" किया, इसलिए आप अभी भी रूट के होम डायरेक्टरी में हैं। यह सुनिश्चित करने के लिए बेहतर होगा कि आप अपने खाते के वातावरण के सभी प्राप्त करने के लिए "su - postgres" सुनिश्चित करें। "यार सु" पढ़ना आपको यहाँ मदद कर सकता है।


क्या यह सामान्य है कि इसका पासवर्ड दो बार पूछ रहा है? दूसरी बार पासवर्ड टाइप करने पर यह मास्क नहीं करता है।
— Nyxynyx

1
हो सकता है क्योंकि आप दो ऑपरेशन कर रहे हैं: 1. pg_dump -h localhost "osm" --table "public.planet_osm_polygon" 2. psql -h localhost "परीक्षण" --समर्थन "staging.planet_osm_polygon"
— Ela

4
सुडो के साथ वैकल्पिक: सुडो -हिउ पोस्टग्रेज
— मैक्स लोबुर

1

मेरे लिए यह चाल चली, उद्धरण पर ध्यान दें (')

sudo -Hiu postgres 'pg_dump --column-inserts --data-only --table=someTable entities_db > /var/backups/anywhere/$(date +%Y%m%d_%H%M%S)_someTable.sql'

सुडो के -Hiuलिए ध्यान दें , या उपयोग करेंsu - postgres

तुम भी जड़ के साथ एक cronjob में डाल सकते हैं crontab -e


महान! मुझे लगता है कि -Hu यहाँ पर्याप्त होगा, स्पष्टीकरण: explainshell.com/explain?cmd=sudo+-Hiu
— rubo77
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.