PostgreSQL নিজেকে সবচেয়ে উন্নত ওপেন সোর্স ডাটাবেস অ্যাপ্লিকেশন প্ল্যাটফর্ম হিসাবে প্রচার করে এবং ডেবিয়ান লিনাক্সে অবশ্যই প্রচুর প্যাকেজ রয়েছে যা এটিকে আরও জটিল করে তোলে। আপনি পোস্টগ্রেএসকিউএল-এর জন্য বোটলোড প্যাকেজগুলিও খুঁজে পেতে পারেন যদি আপনি উবুন্টু সার্ভার বা বিভিন্ন উবুন্টু স্পিনগুলির সাথে কাজ করেন, কারণ সেগুলি ডেবিয়ানের মূলের উপর ভিত্তি করে। জটিলতা এবং বিকাশের এই স্তরটি "সার্ভারের সাথে সংযোগ করতে পারেনি" এবং "এমন কোন ফাইল বা ডিরেক্টরি" সতর্কতাগুলি আরও বেশি বিরক্তিকর করে তোলে৷
সৌভাগ্যবশত, এগুলি সাধারণত অনুমতি সমস্যার সাধারণ ঘটনা যে পোস্টগ্রেএসকিউএল পোস্টগ্রেস নামের একজন ব্যবহারকারীকে এই ডিরেক্টরিগুলি ধরে রাখতে চায়। একটি সাধারণ কমান্ড লাইন কৌশল ব্যবহার করে, আপনি প্রায় সঙ্গে সঙ্গে এটি ঠিক করতে পারেন। আপনি আগে থেকেই কয়েকটি প্রাথমিক ডায়াগনস্টিক পরীক্ষা করতে চান, যদিও, এটি নিশ্চিত করার জন্য যে এটি আসলে সেই সমস্যা যার বিরুদ্ধে আপনি আছেন।
PostgreSQL ঠিক করা সার্ভার ত্রুটির সাথে সংযোগ করা যায়নি
প্রথমে, PostgreSQL সিস্টেম ম্যানুয়ালি রিস্টার্ট করার চেষ্টা করুন। কখনও কখনও এটি জিনিসগুলি ঠিক করার জন্য যথেষ্ট, এবং যদি না হয় তবে আপনি অন্তত কাজ করার জন্য একটি ত্রুটি বার্তা পাবেন। সম্ভবত, আপনি পোস্টগ্রেস ব্যবহারকারী হিসাবে psql কমান্ড জারি করে সিস্টেমটি পুনরায় চালু করবেন।
আপনি দেখতে পাবেন যে এটি সবকিছু পরিষ্কার করেছে। অন্যথায়, আপনি একটি লাইন পেতে পারেন যা "psql:সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না:এমন কোন ফাইল বা ডিরেক্টরি নেই," যার মানে আপনার অনুমতি সমস্যা হচ্ছে। আপনি যদি এই ত্রুটি বার্তাটি পান, তাহলে আপনি অন্য কিছু টেক্সটও পাবেন।
মডিউলগুলি লোড হয়েছে কিনা তা নিশ্চিত করতে আপনি এই বার্তাটি পেয়ে থাকলে পরিষেবার স্থিতি পরীক্ষা করুন৷ সেগুলি হওয়া উচিত, তবে সেগুলি না হলে আপনি পুনরায় চালু করতে চাইতে পারেন। আপনি যদি একটি বার্তা পান যেটি "লোডেড:লোডেড (/lib/systemd/system/postgresql.service; enabled)" লেখা থাকে, তাহলে সেগুলি চলছে৷ sudo পরিষেবা postgresql পুনরায় চালু করার চেষ্টা করুন শুধু একটি সংক্ষিপ্ত পুনঃসূচনা করতে এবং এটি কিছু সংশোধন করে কিনা তা দেখুন। এটি সাধারণত হয় না, তবে এটি নির্ভর করে চেষ্টা করার মূল্য হতে পারে।
অনুমান করে যে এটি সাহায্য করেনি, ত্রুটিগুলি সন্ধান করতে পোস্টগ্রেএসকিউএল লগের ভিতরে দেখুন। অসম্ভাব্য ক্ষেত্রে আপনি প্যাকেজ ত্রুটি সম্পর্কে কিছু খুঁজে পান, তাহলে আপনি SQL মডিউলগুলির একটি অনুপস্থিত হতে পারে। এটি সাধারণত এই সমস্যার কারণ নয়, তবে এটি অবশ্যই অন্তত একবার দেখার জন্য আঘাত করতে পারে না। সম্ভবত, আপনি আসলে এমন কিছু দেখতে পাবেন যা আপনাকে সতর্ক করে যে "অনুমতিগুলি হওয়া উচিত u=rwx (0700)" এবং
যে “ডেটা ডিরেক্টরি “/var/lib/postgresql/9.6/main”-এ গ্রুপ বা বিশ্ব অ্যাক্সেস রয়েছে, যদিও আপনি কোন SQL সার্ভার চালাচ্ছেন তার উপর নির্ভর করে আপনি একটি ভিন্ন সংস্করণ নম্বর দেখতে পারেন।
এর কারণ হল ডেবিয়ান এবং অনুরূপ ডিস্ট্রিবিউশনগুলি আশা করে যে পোস্টগ্রেস ব্যবহারকারী এবং গোষ্ঠী এই ডিরেক্টরিগুলিকে 0700 অনুমতি সহ এবং সমস্ত ফাইল 0600 অনুমতির মাধ্যমে নিরাপত্তার স্বার্থে নিয়ন্ত্রণ করবে। অনুমতি ঠিক করার জন্য আপনাকে যা করতে হবে তা হল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
sudo chown -R postgres:postgres /var/lib/postgresql/9.6/ &&sudo chmod -R u=rwX,go=/var/lib/postgresql/9.6/
মনে রাখবেন এটি একটি আপার-কেস X হওয়া উচিত এবং আরও সাধারণ ছোট হাতের x নয় যে আপনি এই ফাইল অনুমতি বিকল্পগুলি সেট করতে চান এমন নির্দিষ্ট উপায়ের কারণে আপনি সম্ভবত আরও বেশি পরিচিত। এটি করার জন্য আপনার রুট অ্যাক্সেসের প্রয়োজন হলেও, এই দুটি সুডো চিহ্নের অন্তর্ভুক্তিটি নিয়মিত ব্যবহারকারী হিসাবে চালানোর সময় নিজেকে যথাযথ অনুমতি দেওয়ার জন্য যথেষ্ট হওয়া উচিত। এটি গুরুত্বপূর্ণ কারণ উবুন্টু এবং উবুন্টু থেকে শুরু হওয়া বিভিন্ন লিনাক্স বাস্তবায়ন মূল রুট অ্যাকাউন্ট হ্যাশ করে দেয় তাই আপনাকে এইভাবে কাজ করতে হবে।
এই কমান্ডটি শেষ হয়ে গেলে, আপনি sudo service postgresql পুনরায় চালু করে পরিষেবাটি পুনরায় চালু করতে পারেন টার্মিনাল থেকে এবং আপনার এই সময় কোন ত্রুটি থাকা উচিত নয়। আপনি যদি লগটি দেখতে চান, তাহলে অনুমতি সংক্রান্ত সমস্যাগুলির বিষয়ে সেই সতর্কতাগুলি আর থাকা উচিত নয়৷
এটি একটি ত্রুটি যা মোটামুটি নির্দিষ্ট অবস্থার ফলাফল হিসাবে ঘটে, তাই আপনি প্রথমবার এটি সংশোধন করার পরে আপনার আর এটির অভিজ্ঞতা করা উচিত নয় যদি আপনি PostgreSQL ডিরেক্টরিগুলির অনুমতি ম্যানিপুলেশন জড়িত কিছু ম্যানুয়ালি করার চেষ্টা করবেন না। প্রথম স্থানে এই সমস্যাটি সংশোধন করার বাইরে এমন কোন পরিস্থিতি নেই যেখানে এটি আসলেই প্রয়োজনীয় হওয়া উচিত।
লেখক সম্পর্কে
কেভিন অ্যারোস
কেভিন অ্যারোস এক দশকেরও বেশি শিল্প অভিজ্ঞতার সাথে একজন অত্যন্ত অভিজ্ঞ এবং জ্ঞানী প্রযুক্তি বিশেষজ্ঞ। তিনি মাইক্রোসফ্ট সার্টিফাইড টেকনোলজি স্পেশালিস্ট (MCTS) সার্টিফিকেশন ধারণ করেছেন এবং সর্বশেষ প্রযুক্তিগত উন্নয়ন সম্পর্কে আপ-টু-ডেট থাকার গভীর আবেগ রয়েছে। সফটওয়্যার ডেভেলপমেন্ট, সাইবার সিকিউরিটি, এবং ক্লাউড কম্পিউটিং-এর মতো ক্ষেত্রগুলিতে তার দক্ষতা এবং জ্ঞান প্রদর্শন করে কেভিন প্রযুক্তি-সম্পর্কিত বিষয়গুলির বিস্তৃত পরিসরে ব্যাপকভাবে লিখেছেন। কারিগরি ক্ষেত্রে তার অবদান তার সমবয়সীদের দ্বারা ব্যাপকভাবে স্বীকৃত এবং সম্মানিত হয়েছে এবং জটিল প্রযুক্তিগত ধারণাগুলিকে স্পষ্ট এবং সংক্ষিপ্তভাবে ব্যাখ্যা করার ক্ষমতার জন্য তিনি অত্যন্ত সম্মানিত।