
المشاركة الأصلية كتبت بواسطة العندليب
أكرر مره أخرى
dbusercust1: هو اليوزر الخاص بالعميل للإتصال بقواعد بياناته ( يتغير طبعا من عميل الى عميل

)
password: هو الباسوورد الخاص باليوزر المخصص للإتصال بالقواعد. ( طبعا هذه لاتحتاج توضيح، مثل اللي قبلها

)
localhost1.sitecus1.com: هو العنوان الداخلي المعطى للعميل ويتم وضع إعدادات هذا العنوان بإعدادات الـ DNS الخاص بالموقع. ( يتغير طبعا من عميل الى عميل

)
عزيزي عنوان الموضوع ( إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات )
فأنا أقصد بالعميل أنه الشخص الذي يملك مساحه على إستضافه مشتركه لذلك في إعدادات كل عميل يجب تغيير هذه المعلومات حسب إعدادات كل مساحة عميل.
أتمنى أن يكون شرحي واضح.
وسأذكر مثال حتى تتضح الصوره أكثر.
لنفرض أن لدينا 3 عملاء على سرفر واحد
العميل الأول لديه حساب بإسم المستخدم site1 ولديه قاعدة بيانات إسمها site1_vb يتم الدخول عليها بإسم المستخدم site1_dbuser وعنوان الدخول لموقعه
www.site1.com
العميل الثاني لديه حساب بإسم المستخدم site2 ولديه قاعدة بيانات إسمها site2_nuke يتم الدخول عليها بإسم المستخدم site2_u وعنوان الدخول لموقعه
www.site2.org
العميل الثالث لديه حساب بإسم المستخدم site3 ولديه قاعدة بيانات إسمها site3_members يتم الدخول عليها بإسم المستخدم site3_mem3 وعنوان الدخول لموقعه
www.site3.net
ندخل على مساحة العميل الأول ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
كود:
user=site1_dbuser
password=*************
host=localhost.site1.com
بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
كود:
chown mysql:site1 my.cnf
بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الأول ونغير عنوان localhost الخاصه به.
كود:
localhost A 127.0.0.11
بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
كود:
UPDATE db SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
UPDATE user SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
ملاحظه:
حصرت العميل بإستخدام اليوزر المربوط بقاعدة بيانات site1_vb وهذا يعني أن أي قاعدة بيانات جديده سيستخدم معها يوزر site1_dbuser .
ندخل على مساحة العميل الثاني ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
كود:
user=site2
password=*************
host=localhost.site2.org
بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
كود:
chown mysql:site2 my.cnf
بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثاني ونغير عنوان localhost الخاصه به.
كود:
localhost A 127.0.0.12
بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
كود:
UPDATE db SET host='localhost.site2.org' WHERE user LIKE 'site2%'
UPDATE user SET host='localhost.site2.org' WHERE user LIKE 'site2%'
ملاحظه:
جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.
ندخل على مساحة العميل الثالث ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
كود:
user=site3
password=*************
host=localhost.site3.net
بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
كود:
chown mysql:site3 my.cnf
بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثالث ونغير عنوان localhost الخاصه به.
كود:
localhost A 127.0.0.13
بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
كود:
UPDATE db SET host='localhost.site3.net' WHERE user LIKE 'site3%'
UPDATE user SET host='localhost.site3.net' WHERE user LIKE 'site3%'
ملاحظه:
جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.
نقوم باخر خطوه وهي تعديل ملف php.ini ونضيف الأسطر التاليه:
كود:
; تفعيل خاصية safemode لدوال الإتصال
sql.safe_mode = 1
mysql.max_persistent = 100
mysql.max_links = 10
انتهى
ملاحظه:
إستخدام لوحات التحكم مثل الـ cpanel يتطلب تعديل في خصائص بعض الخدمات مثل الـ ftp لكي لا يتم تغيير إسم الملف my.cnf أو حذفه أو تغير صلاحياته.
طبعا يجب عمل الخطوات جميعها.
أهلا بالأخ الكريم وأتمنى ذكر العيوب التي تراها حتى نحلها وقد ذكرت في أول ردي أن هناك أكثر من طريقه ولكني خصصت هذه الطريقه بالذات لأنها عمليه جداً.
وأما طريقتك التي ذكرتها بأن نضع عنوان كل موقع في قاعدة Mysql تتطلب أن يعطي المستضيف كل موقع عنوان أيبي خاص به ولكن بعض المستضيفين لا يملك أيبيات كثيره حتى يعطيها لموقع ما وتجده يضع كل المواقع على عنوان أيبي مشترك واحد!
بإنتظار إثرائكم للموضوع أكثر
موفقين