Mysql تكوين الوصول عن بعد إعداد اتصال عن بعد بـ MySQL

بعد أن قمت بالتثبيت خادم ماي إس كيو إل، يمكنك الاتصال به فقط من نفس الجهاز. تم ذلك لأغراض أمان النظام، حيث يتم استخدام MySQL في معظم الحالات على الويب، وهناك، في حالات نادرة، يتم فصل خادم الويب عن خادم قاعدة البيانات.

في قطاع الشركات، من الأصح استخدام خادم واحد لجميع المهام المماثلة. من الغباء الاحتفاظ بقاعدة بيانات MySQL واحدة على كل خادم قد يحتاج إليها. ولذلك، يجب أن يكون هناك خادم قاعدة بيانات واحد يتم تثبيت العدد المطلوب من قواعد البيانات عليه لمهام مختلفة.

بالمناسبة، على الويب، يتم فصل خادم قاعدة البيانات وخادم الويب فقط في الحالات التي لا تكون فيها قوة خادم واحد كافية. يمكنك استئجار خادم مخصص واستضافة قاعدة البيانات عليه. أود أن أوضح أنه من المعقول القيام بذلك داخل منطقة DC واحدة فقط.

السماح بالاتصال بـ MySQL عن بعد

يوجد في ملف تكوين MySQL نفسه معلمة عنوان الربطومن المسؤول عن ذلك، لذلك:

  1. يفتح ملف الضبطللتحرير:
    سودو نانو /etc/mysql/my.cnf
  2. التعليق خارج السطر:
    # عنوان الربط = 127.0.0.1
  3. أعد تشغيل MySQL:
    إعادة تشغيل خدمة Sudo MySQL

التعليق على هذا السطر يعادل تعيين عنوان IP 0.0.0.0 أي السماح للجميع بالاتصال. لا يمكنك تحديد عنوانين IP في هذا السطر. إذا كنت تريد تقييد الاتصال بخادم MySQL، فأنت بحاجة إلى استخدام إمكانيات iptables.

يمكنك الآن الاتصال بخادم قاعدة البيانات من خلال عميل telnet، ولكن للدخول إلى الداخل تحتاج إلى ذلك حساب، والذي يُسمح له بالاتصال ليس فقط من المضيف المحلي. للقيام بذلك، تحتاج إلى الاتصال بـ MySQL من الخادم نفسه وإنشاء المستخدم التالي:

Mysql -u الجذر -p

وقم بإنشاء مستخدم باستخدام الأمر:

منح جميع الامتيازات على *.* إلى "new_user"@"remote_address" الذي تم تحديده بواسطة "كلمة المرور" مع خيار المنحة؛

ينشئ هذا السطر مستخدمًا يتمتع بحقوق غير محدودة، وهو أمر ليس صحيحًا تمامًا. من الأصح تقييد وصول المستخدم الذي يتصل عن بعد قدر الإمكان. لذلك قد يبدو الأمر كما يلي:

منح التحديد، إدراج، حذف، تحديث، إنشاء، تغيير على "اسم_قاعدة البيانات".* إلى "new_user"@"remote_address" الذي تم تحديده بواسطة "كلمة المرور" مع خيار المنح؛

باستخدام هذا الأمر، قمنا بتقييد أذونات المستخدم بقاعدة بيانات وإجراءات واحدة فقط.

قائمة كاملة بجميع الحقوق التي يمكن تحديدها للمستخدم:

  • جميع الامتيازات- جميع الحقوق المتعلقة بالكائن المحدد، باستثناء تعيين الحقوق لهذا الكائن؛
  • يخلق- الحق في إنشاء جدول؛
  • تغيير- الحق في تغيير الجدول؛
  • يسقط- الحق في تدمير الطاولة؛
  • قفل الجداول- الحق في قفل الطاولة؛
  • إنشاء جداول مؤقتة- الحق في إنشاء جداول مؤقتة؛
  • إنشاء روتين- الحق في إنشاء الإجراءات والوظائف المخزنة؛
  • تغيير الروتين- الحق في تغيير أو تدمير الإجراءات والوظائف المخزنة؛
  • إنشاء عرض- الحق في إنشاء التمثيل؛
  • مشغل- الحق في إنشاء وتدمير المشغلات؛
  • فِهرِس- حقوق إنشاء وتدمير الفهارس؛
  • ينفذ- الحق في تنفيذ الإجراءات والوظائف المخزنة؛
  • حدث– الحق في إنشاء الأحداث؛
  • إنشاء مستخدم– حقوق إنشاء مستخدم وتدميره وإعادة تسميته وإزالة جميع الحقوق. يعين فقط على المستوى العالمي؛
  • يختار- الحق في أخذ العينات؛
  • يمسح- الحق في الحذف؛
  • إدراج- الحق في الإدراج؛
  • تحديث- الحق في التحديث؛
  • ملف- الحق في استخدام الأمرين SELECT ... INTO OUTFILE وLOAD DATA INFILE؛
  • عملية– الحق في عرض جميع العمليات باستخدام الأمر SHOW PROCESSLIST؛
  • عرض قواعد البيانات- الحق في الاطلاع على قائمة المخططات؛
  • عرض المشاهدة- الحق في عرض قائمة وجهات النظر؛
  • اغلق- الحق في الإغلاق.

لخدمة يتم تشغيلها على جهاز آخر. بشكل عام، نحن بحاجة إلى تنفيذ إجراءين:

أ) السماح لخادم MySQL بالاستماع واجهات الشبكة(ليس فقط على 127.0.0.1)

ب) إنشاء أذونات لمستخدمي الشبكة.

إذا كانت النقطة الأولى واضحة إلى حد ما، فإن النقطة (ب) تحتاج إلى توضيح. الحقيقة هي أنه عادةً ما يتم إنشاء المستخدمين مثل "اسم المستخدم"@"المضيف المحلي"، والذي يسمح لهم بالتشبث بامتيازات معينة لقواعد بيانات معينة، ولكن فقط من المضيف المحلي. من الشبكة، لا يمكن لهؤلاء المستخدمين الاتصال - يخبرهم MySQL أن كلمة المرور أو اسم المستخدم غير صحيحين. الحيلة هي أن MySQL يحتوي على قائمة بالمستخدمين، مقسمة حسب الأجهزة التي يمكنهم الاتصال منها. لذلك، يمكن للمستخدم User1 الاتصال من المضيف المحلي بكلمة المرور ABCD، ومن العنوان 192.168.0.1 يمكن تسجيله بكلمة المرور BBBCCC، ومن العنوان 192.168.1.1 - بكلمة المرور BCDE ولبعض قواعد البيانات فقط. أولئك. يمكننا تعيين أجهزة الكمبيوتر التي يُسمح للمستخدم بالاتصال منها، وكلمة المرور التي سيحصل عليها في هذه الحالة، وقواعد البيانات التي سيحصل على امتيازات لها. في الواقع، إذا نظرنا إلى قاعدة بيانات MySQL، فسنرى أن هذا ليس مستخدمًا واحدًا، بل ثلاثة مستخدمين مختلفين: user1@localhost، [البريد الإلكتروني محمي]و [البريد الإلكتروني محمي]. أولئك. من وجهة نظر MySQL هذا هو مستخدمين مختلفين، على التوالي، مع امتيازات وكلمات مرور مختلفة. وبالتالي، من أجل الوصول من الشبكة، نحتاج إلى إنشاء مستخدمين إضافيين في MySQL يشيرون إلى شيء آخر غير المضيف المحلي. علاوة على ذلك، يمكنك إما تحديد عناوين IP محددة يُسمح لهؤلاء المستخدمين بالاتصال منها، أو حرف خاص"%" والتي تعني "أي أجهزة كمبيوتر بخلاف المضيف المحلي". فيما يلي مثال لأسماء المستخدمين:

    اسم المستخدم@"المضيف المحلي": يمكنه الاتصال فقط من المضيف المحلي

    اسم المستخدم@"192.168.0.1": يمكن الاتصال فقط من 192.168.0.1

    اسم المستخدم@"%" : يمكنه الاتصال من أي جهاز كمبيوتر باستثناء المضيف المحلي

    اسم المستخدم@"192.168.0.%" : يمكنه الاتصال من أي جهاز كمبيوتر يبدأ عنوان IP الخاص به بـ 192.168.0.

كما ترون، يجب دائمًا تحديد المستخدم بشكل منفصل للمضيف المحلي. إذا كنت بحاجة إلى تحديد عدة عناوين IP لمستخدم واحد... سيتعين عليك إدخال عناوين IP هذه بشكل منفصل، لسوء الحظ، أو مفصولة بفواصل، ولكن بعد كل فاصلة - مرة أخرى إنشاء مثل IDENTIFIED BY. لذلك، دعونا نمنح خادم MySQL حق الوصول من الشبكة. 1) أولاً، عليك التأكد من أن الخادم يستمع للطلبات ليس فقط على المضيف المحلي.

لديبيان:

افتح الملف /etc/mysql/my.cnf وابحث عن سطر عنوان الربط فيه. نحتاج إلى أن يكون بدون تعليق وأن يحتوي على القيمة 0.0.0.0:

# القط /etc/mysql/my.cnf | عنوان ربط grep

عنوان الربط = 0.0.0.0

إذا قمت بتغيير الخط، فستحتاج إلى إعادة تشغيل خادم MySQL:

# /etc/init.d/mysql إعادة التشغيل

لفري بي إس دي:

افتراضيًا، في FreeBSD، يستمع خادم MySQL إلى جميع الواجهات المتاحة ولا يلزم تغيير أي شيء إضافي.

2) أنت الآن بحاجة إلى إضافة المستخدمين الذين لديهم حق الوصول من الشبكة. بدون ذلك، سوف يستمع الخادم إلى الشبكة، لكنه لن يسمح لك بالدخول.

# الخلية-uroot-p

كلمة المرور: // تحيةMySQL

mysql> منح كافة الامتيازات لـ *.* إلى "user1"@"192.168.0.%" المُحدد بواسطة "password1"؛

mysql> منح كافة الامتيازات لقاعدة البيانات الخاصة بي.* إلى "user2"@"%" المعرف بواسطة "password2"؛

في هذا الرمز، يُسمح للمستخدم user1 بالوصول الكامل إلى كافة قواعد البيانات الموجودة على الخادم، ولكن فقط من أجهزة الكمبيوتر من الشبكة 192.168.0.*

يُسمح للمستخدم الثاني بتسجيل الدخول من أي جهاز كمبيوتر على الإطلاق (باستثناء المضيف المحلي بالطبع)، ولكن لديه حق الوصول الكامل فقط إلى قاعدة البيانات الخاصة بي. وبالمثل، يمكنك إضافة المستخدمين الضروريين بالامتيازات الضرورية.

3) تحقق الوصول إلى الشبكة.

$ mysql -u اسم المستخدم -p -h 192.168.0.100

بدلاً من 192.168.0.100 - حدد عنوان IP الخاص بالجهاز مع خادم MySQL، وبدلاً من اسم المستخدم - اسم المستخدم. إذا لم يسمح لك الخادم بالدخول، فتحقق أولاً من وجود أي جدران حماية في الطريق إليه وما إذا كان منفذ MySQL: 3306 مفتوحًا على جدران الحماية هذه.

يتمتع خادم MySQL بالقدرة على الاستماع إلى عناوين محددة لقبول الاتصالات الواردة. عند التثبيت "افتراضيًا"، "يستمع" كل خادم MySQL العنوان المحلي 127.0.0.1 ، يستمع كل خادم MariaDB للاتصالات من أي مصدر (يستمع 0.0.0.0 ). متابعة في مدير خدمة الإنترنت لايتو عملالإصدارات 5.95.0 وما فوق، ستتم إضافة القدرة على تغيير إعدادات الوصول عن بعد لخوادم قاعدة البيانات المتصلة.

انتباه! لم يتم تنفيذ هذه الوظيفة لـ PostgreSQL

قليل الدسم

إعدادات->خوادم قواعد البيانات. حدد الخادم المتصل وانقر فوق الزر يتغير. لتغيير عنوان IP الخاص بالاستماع، قم بتمكينه في النموذج الوصول عن بعدوحدد العنوان من القائمة التي تظهر:

عمل

لتغيير الإعدادات اذهب إعدادات الكتلة" -> العقد العنقودية . حدد عقدة نظام المجموعة ذات الدورالخادم ماي إس كيو إل نظم إدارة قواعد البيانات، اضغط الزر يتغير. في النموذج، ستحتاج إلى تحديد عنصر الوصول عن بعد وتحديد عنوان IP.

انتباه! بالنسبة لعمليات التثبيت الجديدة على عقدة نظام المجموعة المحلية، يتم تعطيل الوصول عن بعد. افتراضيًا لجميع عقد المجموعة الجديدة ذات الدور خادم MySQL DBMSسيتم تمكين الوصول عن بعد وسيتم تحديد عنوان الاستماع 0.0.0.0

إنشاء مستخدم قاعدة البيانات

نظرا لحقيقة أن العمل مع الوصول عن بعد سيتم إحضاره إلى الشكل المناسب، فإن إنشاء وتحرير مستخدمي قاعدة البيانات سيخضع للتغييرات. في حالة تعطيل الخادم الذي يجب أن يتواجد فيه المستخدم الوصول عن بعد، لن يكون العنصر الذي يحمل نفس الاسم متاحًا في إعدادات المستخدم.

تثبيت البرامج النصية APS

في إصدار اللوحة Business، تنتظر التغييرات الطفيفة تثبيت APS: إذا كان الدور الرئيسي للمستخدم على عقدة نظام مختلف عن دور MySQL الخاص به، فعند محاولة تثبيت APS، إذا تم تعطيل الوصول عن بعد على الخادم، فسيظهر خطأ سوف يظهر من النموذج

هذه المقالة مخصصة لأولئك الذين يواجهون الحاجة إلى إنشاء اتصال عن بعد بقاعدة البيانات لأول مرة بيانات ماي إس كيو إل. توضح المقالة الصعوبات التي قد تنشأ عند إعداد اتصال عن بعد وطرق التغلب عليها.

كيفية تأسيس اتصال مع قاعدة بعيدة؟
لإنشاء اتصال عن بعد، تحتاج إلى تحديد المعلمات التي تميز الاتصال الجاري إنشاؤه. هذا

* --يستضيف
* --بروتوكول
* --ميناء

من بين البروتوكولات الأربعة الممكنة، يسمح TCP/IP فقط بالاتصال عن بعد، وبالتالي فإن الشرط الأول هو إمكانية الوصول إلى الكمبيوتر من الشبكة عبر TCP/IP. بعد ذلك، تحتاج إلى إضافة اسم المضيف (أو عنوان IP الخاص بالجهاز الذي توجد عليه قاعدة البيانات) في سطر الاتصال:
mysql —host=host_name يرجى ملاحظة أن تحديد المضيف المحلي كاسم المضيف (أو عدم وجود مثل هذه المعلمة، التي هي نفسها، لأن هذه هي القيمة الافتراضية) يؤدي إلى الوصول إلى الجهاز المحلي.

يرجى ملاحظة أن المعلمات لها شكلان من الرموز: طويلة وقصيرة. في المقابل، إذا كانت المعلمة لها قيمة (على سبيل المثال، في حالة المضيف، تحتاج إلى تحديد اسم المضيف الذي تريد الاتصال به)، فيمكن استخدام النموذج القصير للإدخال مع أو بدون مسافة (الاستثناء لهذه القاعدة هو كلمة المرور). وبالتالي فإن الإدخالات الثلاثة التالية متكافئة:

* الخلية —host=myhost.ru
* الخلية -h myhost.ru
* الخلية -hmyhost.ru

كيفية إعداد اتصال بقاعدة بعيدة؟

في MySQL، يتميز المستخدم بمعلمتين: الاسم والمضيف الذي يمكنه الوصول من خلاله. افتراضيًا، يُسمح بالوصول فقط من الجهاز المحلي، أي من خلال الجهاز المحلي. للمستخدم user@localhost. يتم منح حقوق وصول المستخدم باستخدام أوامر المنح. يتم تنفيذ الأمر كجذر.

على سبيل المثال، إذا كنت أرغب في إنشاء مستخدم يمكنه الاتصال من أي مضيف حقوق كاملة، فيجب عليك تشغيل الأمر التالي:
منح جميع الامتيازات على "اسم_قاعدة البيانات".* إلى myuser@% المعرّف بواسطة "كلمة المرور"؛

ملحوظة. .لاحظ أن هذا الأمريتيح الوصول إلى المستخدم myuser من كافة عناوين IP باستثناء 127.0.0.1، المطابق للمضيف المحلي.
بالنسبة للمستخدم myuser@localhost، يجب عليك منح الحقوق باستخدام أمر GRANT منفصل.

إذا قررت الوصول إلى الجهاز المحلي كجهاز بعيد باستخدام بروتوكول TCP/IP، فلا تنس أن myuser@localhost وmyuser@ip_own_computer هما مستخدمان مختلفان ويجب منح كل منهما حقوقًا بأمر منفصل.

يوضح المثال الثاني كيفية منح الحق في قراءة جدول المنطقة الزمنية قاعدة بيانات ماي اس كيو الالمستخدم myuser من الجهاز 192.168.0.76 بكلمة المرور mypassy:
منح التحديد على mysql.time_zone TO [البريد الإلكتروني محمي]تم تحديده بواسطة "mypassy"؛
الصعوبات الناشئة

إذا ظهر لك خطأ بعد كل الخطوات (لا يمكن الاتصال بـ خادم ماي اس كيو العلى "IP الخاص بك"(10061))، مما يعني أن الاتصال محظور بواسطة جدار الحماية ( جدار حماية ويندوزأو المخفر أو برنامج مكافحة الفيروسات أو أي شيء آخر).

في حالة حدوث خطأ (لا يدعم العميل طلب بروتوكول المصادقة من قبل الخادم؛ فكر في ترقية عميل MySQL)، فإن العميل (أي برنامجك) لا يدعم البروتوكول المطلوب من قبل الخادم.
يمكن إصلاح هذا الخطأ عن طريق ضبط كلمة المرور على التنسيق القديم:
تعيين كلمة المرور للمستخدم@host = OLD_PASSWORD('password');

جيد سيئ

    توضح هذه المقالة ما يجب فعله إذا نسيت كلمة مرور المسؤول أو حذفت المستخدم الجذر نفسه عن طريق الخطأ. المقال يركز على الأول..

    كنت بحاجة إلى تنظيم النسخ المتماثل لقاعدة البيانات في اتجاهين على خادمي MySQL يعملان على نفس الجهاز. يبدو أنه لا يوجد شيء معقد أو خاص هنا، ولكن...

باستخدام الاتصال عن بعدإلى MySQL، يمكنك الاتصال بقاعدة البيانات الموجودة على خادم الاستضافة من جهازك الكمبيوتر المنزليباستخدام برامج قواعد البيانات التي تناسبك.

اتصال سهل

للإعدادات اتصال سهلإلى MySQL من الخارج، انتقل إلى لوحة التحكم وانتقل إلى قسم "قواعد بيانات MySQL".

انقر فوق الأزرار "IP Access" ← "Add IP" وحدد عنوان IP الذي يمكنك من خلاله الوصول إلى الشبكة. يمكنك معرفة عنوان IP الخاص بك على موقع الويب inet.from.sh.

في النموذج، يمكنك أيضًا تحديد عناوين IP بالرمز % في الثمانيات. على سبيل المثال، لتقييد الوصول من عناوين IP لشبكة فرعية واحدة:

192.168.1.%

انقر فوق إضافة.

يمكنك الآن الاتصال بقاعدة البيانات الموجودة على خادم الاستضافة الخاص بك من جهاز الكمبيوتر الخاص بك. للاتصال، استخدم الإعدادات التالية:

  • الخادم الذي تريد الاتصال به: اسم المجال الخاص بك، على سبيل المثال yourdomain.ru؛
  • منفذ الاتصال: 3306؛
  • اسم المستخدم وكلمة المرور: اسم المستخدم وكلمة المرور اللذين قمت بتعيينهما عند إنشاء قاعدة البيانات.

Mysql -P 3306 -h yourdomain.ru -u mylogin_user -p mylogin_db

اتصال آمن عبر نفق SSH

لضمان أمان بياناتك، استخدم اتصالاً بقواعد بيانات MySQL عبر نفق SSH. يتم نقل البيانات عبر نفق SSH بشكل مشفر، مما يلغي إمكانية اعتراضها.

الاتصال بقاعدة بيانات MySQL من جهاز كمبيوتر يعمل بنظام التشغيل MS Windows

قم بتثبيت البرنامج على جهاز الكمبيوتر الخاص بك المعجون. انه مجانا برمجة، يمكنك تنزيله على الموقع الرسمي.

إطلاق البرنامج.

بعد ذلك، انقر فوق الزر "إضافة".

بعد ذلك، انقر فوق الزر "فتح". سيتم إنشاء اتصال بمضيفك.

استخدم معلومات تسجيل الدخول الخاصة بك لتسجيل الدخول إلى لوحة تحكم الاستضافة الخاصة بك لتسجيل الدخول وكلمة المرور الخاصة بك.

تم تركيب النفق. للاتصال بقاعدة البيانات، استخدم اسم المستخدم وكلمة المرور اللذين حددتهما عند إنشاء قاعدة البيانات في قسم قواعد البيانات بلوحة التحكم. استخدم 127.0.0.1 كعنوان الخادم، منفذ الاتصال 3306.

مثال على الاتصال باستخدام برنامج mysql (سيتم طلب كلمة المرور عند الاتصال):

انتباه:إذا كان جهاز الكمبيوتر الخاص بك يقوم بالفعل بتشغيل خادم قاعدة بيانات MySQL، فاتصل السيرفر المتحكمعبر المنفذ 3306 لن يكون ذلك ممكنا. في هذه الحالة، عند إنشاء اتصال في المعجون، حدد منفذًا مختلفًا باسم "منفذ المصدر"، على سبيل المثال، 3307 . استخدم هذا المنفذ عند الاتصال بقاعدة البيانات.

الاتصال بقاعدة بيانات MySQL من جهاز كمبيوتر يعمل بنظام التشغيل Linux

في موجه الأوامر، قم بتشغيل الأمر التالي:

Ssh -L3306:المضيف المحلي:3306 -n [البريد الإلكتروني محمي]

  • 3306 (مباشرة بعد المفتاح -L) - قم بالتشغيل الكمبيوتر المحليوالتي يمكنك الاتصال بها مع عميل MySQL؛
  • تسجيلك- اسم حسابك (تسجيل الدخول في لوحة التحكم)؛
  • yourdomain.ru- اسم موقعك .

ككلمة مرور، استخدم كلمة المرور لتسجيل الدخول إلى لوحة تحكم الاستضافة الخاصة بك.

تم تركيب النفق. للاتصال بقاعدة البيانات، استخدم اسم المستخدم وكلمة المرور اللذين حددتهما عند إنشاء قاعدة البيانات في قسم قواعد البيانات بلوحة التحكم. استخدم 127.0.0.1 كعنوان الخادم، منفذ الاتصال 3306.

مثال على الاتصال باستخدام برنامج mysql (سيتم طلب كلمة المرور عند الاتصال):

Mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db

انتباه:إذا كان جهاز الكمبيوتر الخاص بك يقوم بالفعل بتشغيل خادم قاعدة بيانات MySQL، فلن يكون الاتصال بخادم بعيد على المنفذ 3306 ممكنًا. في هذه الحالة، عند بدء تشغيل ssh، مباشرة بعد رمز التبديل -L، حدد منفذًا بديلاً، على سبيل المثال، 3307. استخدم هذا المنفذ عند الاتصال بقاعدة البيانات.

التحقق من الاتصال بقاعدة بيانات MySQL

يمكنك التحقق من الاتصال بقاعدة البيانات باستخدام الأداة المساعدة التلنت. تسجيل الدخول إلى الواجهة سطر الأوامر(في نظام التشغيل MS Windows: ابدأ → تشغيل→ cmd.exe)، اكتب الأمر:

تلنت 127.0.0.1 3306

إذا تم إنشاء الاتصال، فيمكن اعتبار إجراء إعداد النفق مكتملاً. خلاف ذلك، تحتاج إلى التحقق بعناية من الإعدادات، والتأكد من عدم وجود مشاكل في الشبكة والاتصال بالدعم الفني.