একাধিক আইপি ঠিকানায় মাইএসকিউএল সার্ভারকে কীভাবে বাঁধবেন?


260

মাইএসকিউএলকে একাধিক আইপি ঠিকানার সাথে আবদ্ধ করার কোনও গোপন উপায় আছে কি?

আমি যতদূর দেখতে পাচ্ছি my.cnf-বাইন্ড-ঠিকানা প্যারামিটার একাধিক আইপি সমর্থন করে না এবং আপনি এটি একাধিকবার নিতে পারবেন না।

উত্তর:


242

না, নেই (আমি মাত্র 1 ঘন্টা আগে পরীক্ষা করেছি)। আপনি my.cnf- এ বাইন্ড-ঠিকানা মন্তব্য করতে পারেন:

#skip-networking
#bind-address                   = 127.0.0.1

আপনি যদি কেবল 2 আইপি চান তবে আপনাকে ফায়ারওয়াল ব্যবহার করতে হবে।


31
সঠিক। বাইন্ডিং 0, 1 বা সার্ভারের সমস্ত আইপি ঠিকানার মধ্যেই সীমাবদ্ধ ।
জো

7
দ্রষ্টব্য, তবে আপনি উভয় socketএবং bind-addressবিকল্প উভয় উল্লেখ করে স্থানীয় ইউনিক্স সকেট এবং একটি নেটওয়ার্ক সকেট উভয়ই প্রকাশ ও পরিবেশন করতে পারেন ।
ডানর্টন

5
আজও সত্য।
ডেনিস নোল্টে

22
ওটা হাস্যকর.
ফিলিপ


78

127.0.0.x এ বাঁধাই সমস্ত ডিভাইসে এটি উপলব্ধ করে না, এটি কেবল স্থানীয়ভাবে এটি উপলব্ধ করবে। আপনি যদি এটি সমস্ত ইন্টারফেসের জন্য উপলব্ধ করতে চান তবে আপনার 0.0.0.0 ব্যবহার করা উচিত। যদি আপনি এটি একাধিক থেকে অ্যাক্সেস করতে চান তবে সমস্ত ইন্টারফেসের চেয়ে কম, আপনাকে 0.0.0.0 এ আবদ্ধ করা উচিত এবং আপনার যে ইন্টারফেসগুলি অ্যাক্সেস করতে চান না সেগুলি বন্ধ করে ফায়ারওয়াল করা উচিত।

এছাড়াও, সুরক্ষার দ্বিতীয় স্তর হিসাবে আপনার অবশ্যই এটি নিশ্চিত করা উচিত যে আপনার সমস্ত মাইএসকিউএল ব্যবহারকারীদের% (অর্থাত্ কোনও হোস্ট) ব্যতীত অন্য কোনও কিছুতে হোস্ট ফিল্ড সেট করা আছে।


1
আপনার যদি কোনও ভাঙা নেটওয়ার্ক স্ট্যাক না থাকে তবে আপনি একটি টিসিপি পোর্ট 0.0.0.0 ঠিকানার জন্য আবদ্ধ করতে পারবেন না।
জন গার্ডেনিয়ার্স

26
আপনি 0.0.0.0 এ আবদ্ধ করতে পারেন । আপনি কেবল এটিতে রুট করতে পারবেন না। যদি আপনি লিনাক্সে (বা এমনকি উইন্ডোজেও, উইন্ডোগুলির জন্য কেবল নেটকাট ইনস্টল করুন) চেষ্টা করুন: একটি টার্মিনালে: এনসি-এল 0.0.0.0 4321 এবং দ্বিতীয় টার্মিনালে: টেলনেট <আপনার কম্পিউটারের যে কোনও ইন্টারফেসের আইপি> 4321 এবং এটি এটিতে সংযুক্ত হবে।
গ্রে প্যান্থার

যেমনটি আমি বলেছি, আপনার যদি ভাঙা নেটওয়ার্ক স্ট্যাক না থাকে ...
জন গার্ডেনিয়ার্স

1
@ জোহেনগার্ডেনিয়ার্স কেন এটি বিশেষ লিঙ্কের অধীনে সংজ্ঞায়িত লিনাক্স আইপি (7) ম্যান পৃষ্ঠাতে রয়েছে INADDR_ANY (0.0.0.0) means any address for binding;?
ebyrob

2
ডেবিয়ান-এ, /etc/mysql/conf.d/bindaddress.cnfসামগ্রী সহ একটি ফাইল ফাইল তৈরি করুন[mysqld] \n bind-address = 0.0.0.0
ইয়ভেস মার্টিন

41

আপনি একাধিক আইপি ঠিকানার সাথে আবদ্ধ থাকতে পারবেন না, তবে পরিবর্তে আপনি সমস্ত উপলভ্য আইপি ঠিকানার সাথে আবদ্ধ করতে পারেন। যদি তা হয় তবে কেবল 0.0.0.0আপনার মাইএসকিউএল কনফিগারেশন ফাইলের (যেমন /etc/mysql/my.cnf) একটি বাধ্যতামূলক ঠিকানার জন্য ব্যবহার করুন :

bind-address    = 0.0.0.0

যদি ঠিকানা 0.0.0.0 হয় তবে সার্ভারটি সমস্ত সার্ভার হোস্ট আইপিভি 4 ইন্টারফেসে টিসিপি / আইপি সংযোগ গ্রহণ করে।

এছাড়াও যদি ঠিকানাটি থাকে ::তবে সার্ভারটি সমস্ত সার্ভার হোস্ট আইপিভি 4 এবং আইপিভি 6 ইন্টারফেসে টিসিপি / আইপি সংযোগ গ্রহণ করে। সমস্ত সার্ভার ইন্টারফেসে আইপিভি 4 এবং আইপিভি 6 সংযোগের অনুমতি দেওয়ার জন্য এই ঠিকানাটি ব্যবহার করুন।

অথবা আপনি কেবল bind-address=সম্পূর্ণরূপে মন্তব্য করতে পারেন , সুতরাং এটি সমস্ত ঠিকানার সাথে আবদ্ধ হবে। তবে নিশ্চিত হয়ে নিন যে আপনি skip-networkingযদি দূরবর্তী সংযোগগুলিকেও অনুমতি দিতে চান তবে আপনি আপনার মাই সিএনএফ এ সক্ষম না হয়ে আছেন (আরও পড়ুন: মাইএসকিউএল: দূরবর্তী এবং স্থানীয় সংযোগ উভয়কেই মঞ্জুরি দিন )।

বাইন্ডিং ঠিকানা পরিবর্তন করার পরে, আপনার মাইএসকিউএল সার্ভারটি পুনরায় আরম্ভ করতে ভুলবেন না:

sudo service mysql restart

অবশেষে আপনি মাস্টার / স্লেভ প্রতিলিপি সহ একক মেশিনে (বিভিন্ন পোর্ট) মাইএসকিউএল একাধিক উদাহরণ চালানোর জন্য বিবেচনা করতে পারেন। প্রতিলিপি এক মাইএসকিউএল ডাটাবেস সার্ভার (মাস্টার) থেকে ডেটা সক্ষম করে এক বা একাধিক মাইএসকিউএল ডাটাবেস সার্ভারে (দাসদের) অনুলিপি করতে।

আরও পড়ুন:


এটি কাজ করে। সমস্ত ব্যবহারকারীদের ২ য়, ৩ য়, যে আইপি ঠিকানা যাই হোক না কেন থেকে সংযোগ করার অনুমতি দেওয়া হয়েছে কিনা তা পরীক্ষা করে দেখুন
gies0r

21

না তুমি পারবে না. আপনার লিঙ্ক করা পৃষ্ঠাটিতে পরিষ্কারভাবে বলা হয়েছে:

আবদ্ধ করতে আইপি ঠিকানা। শুধুমাত্র একটি ঠিকানা নির্বাচন করা যেতে পারে। যদি এই বিকল্পটি একাধিকবার নির্দিষ্ট করা থাকে তবে প্রদত্ত শেষ ঠিকানাটি ব্যবহৃত হয়।

যদি কোনও ঠিকানা বা 0.0.0.0 নির্দিষ্ট না করা থাকে তবে সার্ভার সমস্ত ইন্টারফেসে শুনবে।


12

অন্যরা যেমন উত্তর দিয়েছে, সেখানে একাধিক ইন্টারফেসের বাছাই করে বেছে নেওয়ার এখনও কোনও উপায় নেই।

লিনাক্সের কয়েকটি টিসিপি সরঞ্জাম রয়েছে যা এটি সম্ভব করে তোলে। এই সেটআপে, আপনি 127.0.0.1 এ শোনার জন্য মাইএসকিএল কনফিগার করেছেন এবং তারপরে এটি নির্বিচারে ইন্টারফেসগুলিতে প্রকাশ করার জন্য পুনরায় ব্যবহার করুন।

আমি ভার্চুয়াল বক্স অতিথিকে হোস্ট মেশিনে মাইএসকিএল ইনস্টল করতে সহায়তা করতে এটি ব্যবহার করছি।

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &

দ্রষ্টব্য মাইএসকিউএল> = 8.0.13 একাধিক ইন্টারফেসের সাথে বাঁধার অনুমতি দেয়।
txyoji

6

আমি মনে করি আপনার প্রশ্নটি এই বাগের সাথে সম্পর্কিত http: // http://bugs.mysql.com/bug.php?id=14979 বাগ রিপোর্টটি কিছুটা সমাধানের পরামর্শ দেয়।


একটি মাইএসকিউএল বৈশিষ্ট্য অনুরোধ 2005 থেকে ফিরে!
টনিন

5

মাইএসকিউএল 8.0.13 এর আগে, --bind- ঠিকানা একটি একক ঠিকানা মান গ্রহণ করে, যা একক নন-ওয়াইল্ডকার্ড আইপি ঠিকানা বা হোস্টের নাম বা একাধিক নেটওয়ার্ক ইন্টারফেসে শোনার অনুমতি দেয় এমন একটি ওয়াইল্ডকার্ড ঠিকানা ফর্ম্যাট নির্দিষ্ট করতে পারে (*, 0.0 .0.0, বা: :)।

মাইএসকিউএল 8.0.13 হিসাবে, - বাইন্ড-ঠিকানা ঠিক যেমন বর্ণিত হয়েছে তেমন একক মান, বা কমা-বিভাজিত মানগুলির তালিকা গ্রহণ করে। বিকল্পটি একাধিক মানের তালিকার নাম রাখে, প্রতিটি মান অবশ্যই একটি একক অ-ওয়াইল্ডকার্ড আইপি ঠিকানা বা হোস্টের নাম নির্দিষ্ট করে; কোনওটি ওয়াইল্ডকার্ড ঠিকানা বিন্যাস নির্দিষ্ট করতে পারে না (*, 0.0.0.0, বা: :)।

সূত্র: https://dev.mysql.com/doc/refman/8.0/en/server-options.html


3

ইন my.cnf পরিবর্তন (সাধারণত লিনাক্স /etc/mysql/my.cnf অথবা উইন্ডো জন্য চেক এই উত্তর।

bind-address                   = 127.0.0.1

প্রতি

bind-address                   = 0.0.0.0

তারপরে উইন্ডোজগুলিতে মাইএসকিএল পুনরায় চালু (উবুন্টু পরিষেবা মাইএসকিএল পুনঃসূচনা ) সাধারণত উইন + আর পরিষেবাদি.এমএসসি মাধ্যমে পরিষেবা পুনরায় চালু করুন

০.০.০.০ এটি মাই সিএনএফ-তে দেওয়া সমস্ত পোর্টের সাথে উপলব্ধ পোর্টের সাথে আবদ্ধ হতে বলে tells

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.