يقوم معظم الأشخاص بتشغيل خادم MySQL واحد على جهاز مخصص، ولكن هناك حالات يكون فيها تشغيل خوادم متعددة مفيدًا: يمكنك اختبار إصدارات جديدة من الخادم مع تشغيل خادم الإنتاج. في هذه الحالة، سيتم تشغيل خادم مختلف.
يفرض نظام التشغيل عادةً حدًا إجماليًا للعملية على عدد واصفات الملفات المفتوحة. إذا كان نظامك يواجه صعوبة في رفع الحد، فإن تشغيل خوادم متعددة يعد حلاً بديلاً (على سبيل المثال، قد يتطلب رفع الحد إعادة ترجمة النواة، وإذا كان الجهاز خارج نطاق اختصاصك، فقد لا تتمكن من القيام بذلك بعد). في هذا السيناريو، قد تقوم بتشغيل مثيلات متعددة لنفس الخادم.
غالبًا ما تزود خدمات الإنترنت العملاء بتثبيت MySQL الخاص بهم، الأمر الذي يتطلب خادمًا منفصلاً. في هذه الحالة، يمكنك تشغيل مثيلات متعددة لنفس الخادم أو خوادم مختلفة إذا كان العملاء المختلفون يحتاجون إلى إصدارات مختلفة من MySQL.
وبطبيعة الحال، يعد تشغيل عدة خوادم في وقت واحد أكثر تعقيدًا من تشغيل خادم واحد فقط. إذا كنت تخطط لتثبيت إصدارات متعددة، فلن تتمكن من تثبيتها كلها في نفس الموقع. عند تشغيل الخادم، يجب أن تكون بعض المعلمات فريدة لكل خادم. تتضمن بعض هذه المعلمات مكان تثبيت الخادم: اسم المسار إلى دليل البيانات، ومنفذ TCP/IP واسم مسار مأخذ توصيل مجال UNIX، وحساب UNIX المستخدم لتشغيل خوادم متعددة (إذا لم يتم تشغيلها كلها تحت نفس خادم الحساب). إذا قررت تشغيل خوادم متعددة، فيجب عليك الاحتفاظ بوصف جيد للمعلمات التي تستخدمها حتى لا تفقد مسار عمليات التشغيل.
تكوين وتثبيت خوادم متعددة
إذا كنت تخطط لتشغيل إصدارات مختلفة من الخادم بدلاً من مثيلات متعددة لنفس الخادم، فيجب عليك تثبيتها في مواقع مختلفة. إذا قمت بتثبيت حزم التوزيع الثنائية (وليس RPM)، فسيتم تثبيتها في اسم الدليل الذي يحتوي على رقم الإصدار. في حالة التثبيت من توزيعة مصدر، فإن أسهل طريقة لإبقاء التوزيعات المختلفة منفصلة هي استخدام خيار --with-prefix عند تشغيل التهيئة أثناء كل إصدار من تثبيت MySQL. سيؤدي هذا إلى التثبيت في دليل منفصل يمكن ربطه برقم إصدار التوزيع. على سبيل المثال، يمكنك تكوين حزمة توزيع MySQL على النحو التالي، حيث يكون الإصدار هو رقم إصدار MySQL:
% ./configure ..with-prefix=/usr/local/mysql-version
سيحدد خيار البادئة أيضًا دليل البيانات الفريد للخادم. يمكنك إضافة خيارات لتكوين قيم أخرى خاصة بالخادم، مثل منفذ TCP/IP واسم مسار المقبس (--with-tcp-port و--with-unix-socket).
إذا كنت تخطط لتشغيل مثيلات متعددة من نفس الخادم، فيجب تحديد أي خيارات خاصة بالخادم في وقت التشغيل.
عملية بدء تشغيل خادم متعددة
يعد بدء عدة خوادم أكثر تعقيدًا من استخدام خادم واحد لأن كلاً من Safe_mysqld وmysql.server يعملان بشكل جيد على خادم واحد. يوصي المؤلف بدراسة Safe_mysqld بعناية واستخدامه كأساس لعملية بدء التشغيل، إلا إذا كنت تستخدم نسخة أكثر تفصيلاً تم تعديلها وفقًا لاحتياجاتك.
إحدى المشكلات التي يجب التعامل معها هي كيفية تحديد الخيارات في ملف الخيارات. مع خوادم متعددة، لا يمكنك استخدام /etc/my.cnf للإعدادات التي تتغير على أساس الخادم الإجمالي، استخدم هذا الملف فقط للإعدادات نفسها لجميع الخوادم. إذا كان لكل خادم موقع دليل بيانات مختلف، فيمكنك تحديد معلمات خاصة بالخادم في ملف my.cnf لدليل بيانات كل خادم. بمعنى آخر، استخدم /etc/my.cnf للإعدادات التي تستخدمها كافة الخوادم، وDATA DIR/my.cnf للإعدادات الخاصة بالخادم، حيث يتغير DATADIR لكل خادم.
هناك طريقة أخرى لتحديد خيارات الخادم وهي استخدام - - defa ul ts - file =path_name كخيار أول في سطر الأوامر لإخبار الخادم بقراءة الخيارات من الملف المحدد بواسطة path_name. بهذه الطريقة، يمكن وضع خيارات الخادم في هذا الملف بشكل فريد على ذلك الخادم ثم إخبار الخادم بقراءة الملف عند بدء التشغيل. لاحظ أنه إذا تم تحديد هذا الخيار، فلن يتم استخدام أي من ملفات الخيارات المعتادة (مثل /etc/my.cnf).