এটি আমার উত্তর থেকে প্রায় ভার্চাটিমে নেওয়া হয়েছে , তবে আমি জানি যে আমরা এসও-তে কেবলমাত্র লিঙ্ক-উত্তরগুলিতে ভ্রান্ত হয়েছি তাই আমি কল্পনা করি আপনি ছেলেরাও করবেন :-)
আপনার যদি সমস্যা হয় এবং উইন্ডোজ 7 এর আগে উইন্ডোজের একটি সংস্করণ ব্যবহার করা হয় তবে এটি সম্ভবত আপনার সমস্যার উত্তর নয়।
ইহা কি জন্য ঘটিতেছে?
এই সমস্যার কারণ আইপিভি 4 বনাম আইপিভি 6 v
আপনি যখন কোনও আইপি ঠিকানার পরিবর্তে হোস্টের নামটি ব্যবহার করেন, মাইএসকিউএল ক্লায়েন্ট প্রথমে AAAA
নামের জন্য একটি (আইপিভি 6) হোস্ট লুকআপ চালায় , এবং যদি এই ঠিকানাটি কোনও আইপিভি 6 ঠিকানায় নামটি সফলভাবে সমাধান করে তবে প্রথমে এই ঠিকানাটি চেষ্টা করে। যদি কোনও পদক্ষেপ ব্যর্থ হয় (নাম রেজোলিউশন বা সংযোগ) তবে এটি আইভিভি 4-এ ফ্যালব্যাক হবে, একটি A
অনুসন্ধান চালাচ্ছে এবং পরিবর্তে এই হোস্টটি চেষ্টা করছে।
বাস্তবে এর অর্থ হ'ল যদি আইপিভি 6 localhost
লুকআপ সফল হয় তবে মাইএসকিউএল আইপিভি 6 লুপব্যাকের সাথে আবদ্ধ না হয়, আইপিভি 4 ফ্যালব্যাক ঘটে এবং সংযোগটি সফল হওয়ার আগে আপনাকে একটি সংযোগের টাইমআউট চক্রের জন্য অপেক্ষা করতে হবে।
এটি উইন্ডোজ to এর আগে কোনও সমস্যা ছিল না, কারণ localhost
রেজোলিউশনটি হোস্ট ফাইলের মাধ্যমে করা হয়েছিল, এবং এটি কেবল পূর্বনির্ধারিতভাবে এসেছে 127.0.0.1
- এটি আইপিভি counter অংশের সাথে আসে নি ::1
।
উইন্ডোজ 7 যেহেতু, localhost
রেজোলিউশনটি ডিএনএস রেজলভারের মধ্যে তৈরি করা হয়েছে, এখানে এখানে বর্ণিত কারণগুলির জন্য । এর অর্থ হ'ল এখন আইপিভি 6 লুকোচুরি সফল হবে - তবে মাইএসকিউএল সেই আইপিভি 6 ঠিকানার সাথে আবদ্ধ নয়, সুতরাং সংযোগটি ব্যর্থ হবে এবং আপনি এই প্রশ্নের মধ্যে উল্লিখিত বিলম্ব দেখতে পাবেন।
ওটা সুন্দর. ইতিমধ্যে এটি ঠিক করতে কিভাবে আমাকে বলুন!
আপনার স্বল্প কিছু সু্যোগ আছে। ইন্টারনেট ঘুরে দেখলে, সাধারণ "সমাধান" থেকে মনে হয় নামের পরিবর্তে আইপি ঠিকানাটি স্পষ্টভাবে ব্যবহার করা হবে, তবে এটি না করার কয়েকটি কারণ রয়েছে, উভয় বহনযোগ্যতা সম্পর্কিত, উভয়ই তাত্পর্যপূর্ণভাবে গুরুত্বপূর্ণ নয়:
আপনি যদি স্ক্রিপ্টটিকে অন্য কোনও মেশিনে সরান যা কেবলমাত্র আইভিভি 6 সমর্থন করে, আপনার স্ক্রিপ্ট আর কাজ করবে না।
আপনি যদি আপনার স্ক্রিপ্টটিকে * নিক্স-ভিত্তিক হোস্টিং পরিবেশে নিয়ে যান, ম্যাজিক স্ট্রিংয়ের localhost
অর্থ মাইএসকিউএল ক্লায়েন্ট কোনও ইউনিক্স সকেট ব্যবহার করতে পছন্দ করবে যদি কোনওটি কনফিগার করা থাকে তবে এটি আইপি লুপব্যাক ভিত্তিক সংযোগের চেয়ে আরও কার্যকর
তারা যদিও বেশ গুরুত্বপূর্ণ মনে হচ্ছে?
তারা না। আপনার অ্যাপ্লিকেশনটি ডিজাইন করা উচিত যাতে এই ধরণের জিনিসটি একটি কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয়। আপনি যদি আপনার স্ক্রিপ্টটিকে অন্য পরিবেশে নিয়ে যান, তবে অন্যান্য জিনিসগুলিও কনফিগার করার দরকার হয়।
সংক্ষেপে, আইপি ঠিকানা ব্যবহার করা সেরা সমাধান নয়, তবে এটি সম্ভবত একটি গ্রহণযোগ্য।
তাহলে সবচেয়ে ভাল সমাধান কি?
সর্বোত্তম উপায় হ'ল মাইএসকিউএল সার্ভারটি যে বাইন্ড ঠিকানা ব্যবহার করে তা পরিবর্তন করা। তবে এটি কারওর মতো পছন্দ করা সহজ নয়। অ্যাপাচি, এনগিনেক্স এবং অন্য যে কোনও সান নেটওয়ার্ক পরিষেবা অ্যাপ্লিকেশনটি তৈরি করেছে তার বিপরীতে, মাইএসকিউএল কেবলমাত্র একটি একক বাঁধনের ঠিকানা সমর্থন করে, সুতরাং এটি কেবল অন্য একটি যুক্ত করার ঘটনা নয়। ভাগ্যক্রমে যদিও, অপারেটিং সিস্টেমগুলি এখানে কিছুটা যাদু সমর্থন করে, তাই আমরা মাইএসকিউএলকে একই সাথে আইপিভি 4 এবং আইপিভি 6 উভয়ই ব্যবহার করতে সক্ষম করতে পারি।
আপনার মাইএসকিউএল 5.5.3 বা তার পরে চালানো দরকার এবং আপনাকে --bind-address=
কমান্ড লাইন যুক্তি দিয়ে মাইএসকিউএল শুরু করতে হবে । আপনি যা করতে চান তার উপর নির্ভর করে আপনার কাছে 4 টি বিকল্প ডক্স রয়েছে :
আপনি সম্ভবত যার সাথে পরিচিত এবং আপনি সম্ভবত (কার্যকরভাবে) ব্যবহার করছেন 0.0.0.0
,। এটি মেশিনে থাকা সমস্ত উপলব্ধ IPv4 ঠিকানার সাথে আবদ্ধ b আপনি যদি আইপিভি 6 এর বিষয়ে চিন্তা না করেন তবে এটি সম্ভবত সেরা কাজ নয়, কারণ এটি একই সুরক্ষার ঝুঁকিতে পড়ে ::
।
একটি স্পষ্ট IPv4 বা IPv6 ঠিকানা (উদাহরণস্বরূপ 127.0.0.1
বা ::1
লুপব্যাকের জন্য)। এটি সার্ভারটি সেই ঠিকানার সাথে এবং কেবলমাত্র সেই ঠিকানার সাথে আবদ্ধ করে ।
ম্যাজিক স্ট্রিং ::
। এটি মাইএসকিউএলকে আইপিভি 4 এবং আইপিভি 6 মোডে উভয় লুপব্যাক এবং ফিজিক্যাল ইন্টারফেস ঠিকানাগুলিতে মেশিনের প্রতিটি ঠিকানার সাথে আবদ্ধ করবে। এটি সম্ভাব্যরূপে একটি সুরক্ষা ঝুঁকি, কেবলমাত্র এটি করুন যদি আপনার দূরবর্তী হোস্টের সংযোগ গ্রহণের জন্য মাইএসকিউএল প্রয়োজন হয়।
একটি আইপিভি 4-ম্যাপযুক্ত IPv6 ঠিকানা ব্যবহার করুন । এটি 4 -> 6 রূপান্তরের সময় পিছনের সামঞ্জস্যের জন্য আইপিভি 6 এ নির্মিত একটি বিশেষ প্রক্রিয়া এবং এটি আপনাকে একটি নির্দিষ্ট আইপিভি 4 ঠিকানার সাথে আবদ্ধ করতে দেয় এবং এটি আইপিভি 6 সমতুল্য। এটি "ডুয়াল লুপব্যাক" ঠিকানা ব্যতীত অন্য যে কোনও কিছুর জন্য আপনার পক্ষে কার্যকর হতে পারে না ::ffff:127.0.0.1
। এটি সম্ভবত লুপব্যাকের সাথে আবদ্ধ তবে আইপিভি 4 এবং আইপিভি 6 সংযোগ উভয়কেই অনুমতি দেয় বেশিরভাগ মানুষের পক্ষে এটি সর্বোত্তম সমাধান solution
আমার কি হোস্ট ফাইলটি পরিবর্তন করতে হবে?
কোন । হোস্ট ফাইলটি পরিবর্তন করবেন না। ডিএনএস রেজোলভার কী করতে হবে তা জানে localhost
, পুনরায় সংজ্ঞায়িত করার সর্বোপরি কোনও প্রভাব পড়বে না এবং সবচেয়ে খারাপ দিক থেকে সমাধানটি ছাড়াই জাহান্নামকে বিভ্রান্ত করবে।
কি হবে --skip-name-resolve
?
এটি সম্পর্কিত তবে কিছুটা ভিন্ন কারণে সমস্যাও সমাধান করতে পারে।
এই কনফিগারেশন বিকল্পটি ছাড়াই, মাইএসকিউএল একটি ক্লায়েন্ট সংযোগ আইপি ঠিকানাগুলি কোনও PTR
ডিএনএস ক্যোয়ারির মাধ্যমে একটি হোস্টনামে সমাধান করার চেষ্টা করবে । যদি আপনার মাইএসকিউএল সার্ভারটি ইতিমধ্যে আইপিভি 6 ব্যবহার করতে সক্ষম হয়েছে তবে সংযোগগুলি এখনও অনেক সময় নিচ্ছে, কারণ এটি হতে পারে যে বিপরীত ডিএনএস ( PTR
) রেকর্ডটি সঠিকভাবে কনফিগার করা হয়নি।
নাম রেজোলিউশন অক্ষম করা এই সমস্যাটিকে সংশোধন করবে, তবে এতে অন্যান্য পদক্ষেপ রয়েছে, উল্লেখযোগ্যভাবে যে Host
শর্তে একটি ডিএনএস নাম ব্যবহার করার জন্য কনফিগার করা কোনও অ্যাক্সেস অনুমতি এখন ব্যর্থ হবে।
আপনি যদি এটি করতে যাচ্ছেন তবে আপনাকে নামের পরিবর্তে আইপি ঠিকানা ব্যবহার করতে আপনার সমস্ত অনুদান কনফিগার করতে হবে।