সমাধান করা হয়েছে: UNIX সকেট ফাইলের জন্য mysqld_safe ডিরেক্টরি '/var/run/mysqld' বিদ্যমান নেই।

সর্বশেষ আপডেট: 09/14/2023
লেখক: SQL SourceTrail

মাইএসকিউএল-এর সাথে কাজ করার সময়, একটি সাধারণ সমস্যা যা ডেভেলপাররা প্রায়শই সম্মুখীন হয় তা হল UNIX সকেট ফাইলের জন্য "mysqld_safe ডিরেক্টরি '/var/run/mysqld' বিদ্যমান নেই" ত্রুটির বার্তা৷ এটি অসুবিধাজনক হতে পারে বিশেষ করে যখন আপনার রুটিন কাজগুলি এই বহুল ব্যবহৃত ওপেন-সোর্স রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমের উপর খুব বেশি নির্ভর করে। এই ত্রুটিটি সাধারণত নির্দেশ করে যে ডিরেক্টরিতে একটি সমস্যা আছে যেখানে MySQL তার সকেট ফাইল সংরক্ষণ করে। এখানে আমরা কীভাবে এই সমস্যাটির সমাধান করা যেতে পারে তা নিয়ে আলোচনা করব, ধাপে ধাপে সমাধানটি বিচ্ছিন্ন করব এবং কার্যকরী কিছু ফাংশন এবং লাইব্রেরি অন্বেষণ করব।

এই সমস্যাটি কেন হয়? সমস্যাটি দেখা দেয় যখন MySQL সার্ভার /var/run/mysqld ডিরেক্টরিটি খুঁজে পায় না। সাধারণত এই স্থানেই MySQL তার UNIX সকেট ফাইলটি রাখে, যা লোকাল কানেকশনের জন্য অত্যন্ত গুরুত্বপূর্ণ। কোনো কারণে এই ডিরেক্টরিটি অনুপস্থিত থাকলে, MySQL ঠিকমতো কাজ করতে পারে না।

systemctl start mysql

এই ত্রুটিটি ঘটে যখন আপনি উপরের কমান্ডটি ব্যবহার করে MySQL সার্ভার শুরু করার চেষ্টা করেন। এই সমস্যার পিছনের কারণ হল /var/run/mysqld ডিরেক্টরির অনুপস্থিতি।

সমাধান

এই সমস্যার সমাধান বেশ সোজা। আপনাকে যা করতে হবে তা হল একটি ডিরেক্টরি তৈরি করুন যেখানে MySQL সকেট ফাইল সংরক্ষণ করতে চায়। নিম্নলিখিত কমান্ড ঠিক এটি করবে:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

প্রথম লাইনটি /var/run/mysqld ডিরেক্টরি তৈরি করতে 'mkdir -p' কমান্ড ব্যবহার করে। '-p' বিকল্পটি সিস্টেমকে প্রয়োজনীয় প্যারেন্ট ডিরেক্টরি তৈরি করতে বলে।

দ্বিতীয় লাইন 'chown mysql:mysql /var/run/mysqld', /var/run/mysqld ডিরেক্টরির মালিক এবং গোষ্ঠীকে mysql-এ পরিবর্তন করে, যা ব্যবহারকারী এবং গোষ্ঠী যার অধীনে MySQL সার্ভার চলে।

এসকিউএল কোড বোঝা

সমাধানটি বুঝতে এবং বাস্তবায়ন করতে, আপনাকে ব্যবহৃত ফাংশনগুলির সাথে পরিচিত হতে হবে এবং তারা কীভাবে ইন্টারঅ্যাক্ট করে। আমরা এখানে এগুলি বিস্তারিতভাবে ব্যাখ্যা করব।

  • mkdir: এই কমান্ড, যেমন উপরে বলা হয়েছে, "মেক ডিরেক্টরি" এর জন্য দাঁড়ায়। এটি একটি ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়। কমান্ডের '-p' বিকল্পের অর্থ হল এটি প্রয়োজনীয় সমস্ত মূল ডিরেক্টরিও তৈরি করবে। উদাহরণস্বরূপ, যদি '/var/run/' বিদ্যমান না থাকে তবে এটিও তৈরি করা হবে।
  • chown: এই কমান্ডের অর্থ হল "পরিবর্তন মালিক"। এটি একটি ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করতে ব্যবহৃত হয়। 'mysql:mysql' বোঝায় যে সার্ভারের মালিককে ব্যবহারকারী 'mysql' এবং গ্রুপটিকে 'mysql'-এ '/var/run/mysqld' ডিরেক্টরির জন্য পরিবর্তন করা উচিত।

লাইব্রেরি এবং ফাংশন জড়িত

1. MySQL সার্ভার: MySQL সার্ভার এই আলোচনার কেন্দ্রবিন্দু কারণ সমস্যাটি এটিকে ঘিরে। এটি স্থানীয় সংযোগগুলি পরিচালনা করতে /var/run/mysqld-এ সংরক্ষিত UNIX সকেট ফাইল ব্যবহার করে।

2. UNIX/LINUX: আমরা এখানে UNIX কমান্ড নিয়েও কাজ করছি। এগুলি যেকোন লিনাক্স সিস্টেমের অপরিহার্য উপাদান এবং সার্ভারে ডিরেক্টরি তৈরি এবং অনুমতি প্রদানে সহায়তা করে।

এই ত্রুটির অন্তর্নিহিত কারণ এবং এটি ঠিক করতে ব্যবহৃত কমান্ডগুলি বোঝার মাধ্যমে, আপনি সহজেই আপনার MySQL সার্ভারগুলির মসৃণ অপারেশন নিশ্চিত করতে পারেন। আপনি যদি ভবিষ্যতে অনুরূপ ত্রুটির সম্মুখীন হন, সমস্যা সমাধানের প্রক্রিয়াটি অনেক বেশি সুগম এবং কম কঠিন হবে।

সম্পর্কিত পোস্ট: