سؤال كيفية ربط خادم MySQL بأكثر من عنوان IP؟


هل هناك طريقة سرية لربط MySQL بأكثر من عنوان IP؟

بقدر ما أستطيع أن أرى ربط عنوان لا تدعم المعلمة في my.cnf أكثر من عنوان IP واحد ولا يمكنك الحصول عليه أكثر من مرة.


246
2017-09-02 16:04


الأصل




الأجوبة:


لا ، ليس هناك (لقد راجعت قبل ساعة واحدة فقط). يمكنك التعليق على عنوان الربط في my.cnf:

#skip-networking
#bind-address                   = 127.0.0.1

إذا كنت تريد اثنين فقط من عناوين IP ، فسيتعين عليك عندئذٍ استخدام جدار حماية.


229
2017-09-02 16:08



صيح. يقتصر الربط إما على 0 أو 1 أو الكل عناوين IP على الخادم. - Joe
مع ذلك ، لاحظ أنه يمكنك نشر وخدمة مقبس يونكس محلي ومقبس شبكة عن طريق تحديد كل منهما socket و bind-address خيارات. - danorton
لا يزال صحيحا اعتبارا من اليوم. - Dennis Nolte
هذا سخيف. - Phillipp
تعاملAJP Mysql "localhost" و "127.0.0.1" بشكل مختلف في نظام الامتيازات. تم التأكيد هنا: يتم استخدام ملف مأخذ Unix إذا لم تقم بتحديد اسم مضيف أو إذا قمت بتحديد localhost name localhost. - Christian Lescuyer


لن يؤدي الربط بـ 127.0.0.x إلى إتاحته لجميع الأجهزة ، بل سيجعله متاحًا محليًا فقط. إذا كنت ترغب في جعلها متاحة لجميع الواجهات ، يجب عليك استخدام 0.0.0.0. إذا كنت ترغب في الوصول إليه من أكثر من واحد ، ولكن أقل من جميع الواجهات ، يجب عليك ربط 0.0.0.0 وجدار الحماية من الواجهات التي لا تريد الوصول إليها من خلال.

أيضا ، كطبقة ثانية من الأمن ، يجب عليك التأكد من أن جميع مستخدمي MySQL لديهم مجال مضيف معين إلى شيء آخر غير٪ (أي أي مضيف).


76
2017-09-02 16:29



ما لم يكن لديك مكدس شبكة معطوب لا يمكنك ربط منفذ TCP لمعالجة 0.0.0.0. - John Gardeniers
أنت يستطيع ربط 0.0.0.0. أنت فقط لا يمكن أن الطريق إلى ذلك. إذا كنت تستخدم Linux (أو حتى على Windows ، فقط قم بتثبيت netcat للنوافذ) فحاول: في محطة واحدة: nc -l 0.0.0.0 4321 وفي طرفية ثانية: telnet <IP من أي واجهة يحتوي على الكمبيوتر الخاص بك> 4321 سوف يتصل به. - Grey Panther
كما قلت ، إلا إذا كان لديك مكدس شبكة مكسورة ... - John Gardeniers
JohnGardeniers هو السبب في ذلك في صفحة المستخدم لينكس IP (7) محددة تحت عناوين خاصة: INADDR_ANY (0.0.0.0) means any address for binding;؟ - ebyrob
على دبيان ، قم بإنشاء ملف /etc/mysql/conf.d/bindaddress.cnf ملف مع المحتوى [mysqld] \n bind-address = 0.0.0.0 - Yves Martin


لا يمكنك ربط أكثر من عنوان IP واحد ، ولكن يمكنك الربط مع جميع عناوين IP المتاحة بدلاً من ذلك. إذا كان الأمر كذلك ، استخدم فقط 0.0.0.0 للحصول على عنوان ربط في ملف التكوين MySQL الخاص بك (على سبيل المثال /etc/mysql/my.cnf) على النحو التالي:

bind-address    = 0.0.0.0

إذا كان العنوان 0.0.0.0 ، يقبل الخادم اتصالات TCP / IP على كل واجهات IPv4 لمضيف الخدمة.

علاوة على ذلك إذا كان العنوان ::، يقبل الخادم اتصالات TCP / IP على جميع واجهات IPv4 و IPv6 لمضيفي الخدمة. استخدم هذا العنوان للسماح باتصالات IPv4 و IPv6 على جميع واجهات الخادم.

أو يمكنك ببساطة التعليق bind-address= تماما ، لذلك سوف ترتبط بجميع العناوين. ولكن تأكد من أنك لا تملك skip-networking ممكّنًا في my.cnf إذا كنت تريد السماح بالاتصالات عن بُعد أيضًا (اقرأ المزيد: MySQL: السماح لكل من الاتصالات البعيدة والمحلية).

بعد تغيير عنوان الربط ، لا تنس إعادة تشغيل خادم MySQL من خلال:

sudo service mysql restart

في نهاية المطاف يمكنك التفكير في تشغيل مثيلات متعددة من MySQL على جهاز واحد (منافذ مختلفة) باستخدام النسخ المتماثل رئيسي / تابع. يتيح النسخ المتماثل للبيانات من خادم قاعدة بيانات MySQL (الرئيسي) نسخها إلى واحد أو أكثر من خوادم قواعد بيانات MySQL (العبيد).

قراءة المزيد:


33
2017-08-11 09:37



في الواقع كنت آمل في خيار ربط بعض ، ولكن ليس كل العناوين. - BlaM


لا لا يمكنك. تشير الصفحة التي ترتبط بها بوضوح إلى:

عنوان IP للربط. يمكن تحديد عنوان واحد فقط. إذا تم تحديد هذا الخيار عدة مرات ، فسيتم استخدام آخر عنوان محدد.

إذا تم تحديد أي عنوان أو 0.0.0.0 ، يستمع الملقم على كافة الواجهات.


19
2017-09-14 20:45





كما أجاب الآخرون ، لا توجد طريقة بعد لربط أكثر من واجهة واحدة.

يحتوي Linux على بعض أدوات TCP التي تجعله ممكنًا. في هذا الإعداد ، يمكنك تكوين mysql للاستماع على 127.0.0.1 ثم استخدامها redir لفضحها على واجهات تعسفية.

لقد تم استخدام هذا لمساعدة ضيف مربع الظاهري راجع mysql مثبت على الجهاز المضيف.

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

8
2018-02-24 20:23





أعتقد أن سؤالك يتعلق بهذا الخطأ http://bugs.mysql.com/bug.php؟id=14979 يقترح تقرير الأخطاء بعض الحل.


6
2017-09-02 16:14



طلب ميزة MySQL يعود تاريخه إلى عام 2005! - Tonin


في my.cnf تغيير (عادة / etc / mysql / my.cnf على لينكس أو للتحقق من ويندوز هذه إجابة.

bind-address                   = 127.0.0.1

إلى

bind-address                   = 0.0.0.0

ثم أعد تشغيل mysql (على Ubuntu إعادة تشغيل الخلية) على ويندوز عادة خدمة إعادة التشغيل من خلال فوز + R services.msc 

0.0.0.0 يرويها لربط جميع IP المتاحة مع منفذ أيضا في my.cnf


3
2017-09-19 18:34