পোস্টগ্রিএসকিউএল: ডিরেক্টরিটি / রুটে পরিবর্তন করা যায় না


12

আমি 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?


এখানে কোনও --table পরামিতি নেই 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

@ দেজ্জো ওহ আমি তা লক্ষ্য করিনি !! আমি অনুমান করি যে এটি সর্বদা publicস্কিমাতে অনুলিপি করা হবে
Nyxynyx

এই সমস্যাটি কারণ pgsql / ডিরেক্টরি বিদ্যমান নেই, আপনাকে এটি আমার জন্য / var / lib / pgsql এ তৈরি করতে হবে .. দয়া করে হীরাম
হিরাম ওয়াকার

উত্তর:


26

এটি চেষ্টা করুন: পুনরায়: ডিরেক্টরিটি "/ root" তে পরিবর্তন করতে পারেনি :

স্পষ্টতই আপনি রুট অ্যাকাউন্ট থেকে "সু পোস্টগ্রিজ" করেছেন, সুতরাং আপনি এখনও মূলের হোম ডিরেক্টরিতে রয়েছেন। আপনি পোস্টগ্রেশ অ্যাকাউন্টের সমস্ত পরিবেশ অর্জন করেছেন তা নিশ্চিত করার জন্য "su - postgres" করা আরও ভাল। "ম্যান সু" পড়া আপনাকে এখানে সহায়তা করতে পারে।


এটি কি স্বাভাবিক যে এটি দুবার পাসওয়ার্ড চেয়েছে? দ্বিতীয়বার পাসওয়ার্ড টাইপ করা এটি মাস্ক করে না।
Nyxynyx

1
আপনি দুটি অপারেশন করছেন বলে সম্ভবত: 1. পিজি_ডাম্প -h লোকালহোস্ট "ওএসএম" - টেবিল "পাবলিক.প্ল্যানেট_সোম_পলিগন" ২. পিএসকিএল-লোকালহোস্ট "টেস্ট" - টেবিল "স্টেজিং.প্ল্যানেট_সোম_পলিগন"
ইলা

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'

-HiuSudo, বা ব্যবহারের জন্য নোট করুনsu - postgres

আপনি এটির সাথে মূলের জন্য ক্রাউনজও রাখতে পারেন crontab -e


মহান! আমি -hu এখানে যথেষ্ট হবে, ব্যাখ্যা: explainshell.com/explain?cmd=sudo+-Hiu
rubo77
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.