السؤال: كيف اقوم بحذف مستخدم او انشاء مستخدم جديد في mysql عن طريق سطر الاوامر؟
الجواب: ادوات وأوامر mysql حقيقة توفر لك كل شيء تحتاجة لإدراة خادم القواعد وقواعد البيانات دون الحاجة لإستخدام برمجيات خارجية مثل PhpMyAdmin. وفي الحقيقة ان برامج مثل PhpMyAdmin ماهي إلى ادوات اضافية تسهل وتبسط لك التعامل مع MySQL وليست بشيء اساسي لإدارة MySQL server. في هذا الموضوع سوف اقوم بشرح طريقة حذف مستخدم موجود او انشاء مستخدم جديد في mysql server. موضوعي مقسوم إلى قسمين الأول طريقة انشاء المستخدم والقسم الثاني طريقة حذف المستخدم وسوف اقوم ايضاً بشرح طريقة اعادة تسمية مستخدم ما.
متطلبات تنفيذ الشرح عملياً
- خادم linux
- MySQL server 5.x
- root access
- Terminal/SSH
التعامل مع اوامر MySQL في الترمنال
اسلوب تنفيذ الأوامر في mysql سوف استخدمة بطريقة تنفيذ وخروج. اي دون الحاجة للدخول على سطر الاوامر الخاص ب mysql عن طريق الامر mysql
. سوف استخدم خاصية e
والتي تعمل باسلوب Execute command and quit كما قلت سابقاً تنفيذ الامر والخروج. وهذا هي الطريقة الأفضل لتجنب الدخول اليدوي لسطر الاوامر ومن ثم الخروج اليدوي من سطر الاوامر الخاص بال mysql. بحيث يكون الامر شيء مثل mysql -e your_command_here
وهكذا.
الان قم بفتح سطر الاوامر. وتأكد انك بصلاحيات root. وان خادم mysql يعمل, ان كان لا يعمل تشغيلة يتم عن طريق الامر service mysql start
.
إنشاء مستخدم جديد في MySQL server
لإنشاء مستخدم جديد كل ماعليك هو تحديد ثلاث نقاط الأولى اسم المستخدم الذي تريد انشاءة, ثانياً اختيار كلمة المرور وثالثاً اختيار الهوست المربوط بة المستخدم مثلاً localhost او عنوان FQDN الخاص بالسيرفر.
صيغة امر إنشاء مستخدم تكون بهذه الطريقة
CREATE USER User_Name_Here IDENTIFIED BY 'Password_Here';
شرح سريع للأمر حتى تفهم بالضبط ماذا سوف تنفذ. اولاً يجب كتابة الامر بالحروف الكبيرة ماعدى اسم المستخدم اما الباسورد كيف ماتشاء. USER
هو الامر الأول ويعني إنشاء الامر الفرعي هو USER
وهذا يعني مستخدم, اي انك تريد انشاء مستخدم واخيراً IDENTIFIED BY 'Password_Here'
وهذه لتحديد كلمة المرور ولا ننسى ان نغلق الامر بكتابة ; في نهاية الامر.
الأن لنفرض انك تريد إنشاء مستخدم بالاسم muse والباسورد Mustafa_Albazy اذن سوف يكون الامر بهذا الشكل
mysql -e "CREATE USER muse IDENTIFIED BY 'Mustafa_Albazy';"
ارجو الملاحظة هنا انني لم احدد اسم HOSTNAME وهذا يعني انة سوف يتم جعل الهوست نيم % اي غير محدد.
لتحديد اسم الهوست localhost او FQDN سوف تكون صيغة الامر بهذا الشكل
CREATE USER 'User_Name_Here'@'localhost' IDENTIFIED BY 'Password_Here';
الان لو اردنا انشاء مستخدم بالاسم muse والباسورد Mustafa_Albazy والهوست نيم localhost سوف يكون الامر بهذا الشكل
mysql -e "CREATE USER 'muse'@'localhost' IDENTIFIED BY 'Mustafa_albazy';"
وبهذا سوف يتم انشاء مستخدم بالاسم muse والباسورد Mustafa_Albazy ومع تحديد الهوست نيم localhost
ملاحظة: إنشاء مستخدم جديد يحمل نفس الاسم لمستخدم موجود بالفعل في خادم mysql سوف يظهر لك خطأ. ولن يتم إنشاء المستخدم بعتبار ان المستخدم اصلاً موجود.
حذف مستخدم في MySQL server
لحذف مستخدم تحتاج إلى تحديد اسم المستخدم الذي تود حذفة, مع تحديد اسم الهوست نيم اذا كان موجود في أكثر من هوست نيم وتريد حذفة من هوست نيم معين فقط.
صيغة امر حذف مستخدم تكون بهذه الطريقة
DROP USER User_Name_Here;
شرح للأمر؛ اولاً استخدمنا الأمر DROP
وهو المسؤول عن الحذف ثم اخترنا USER
وهنا حددنا اننا نريد حذف مستخدم ثم كتبنا اسم المستخدم المراد حذفة واخيراً اغلقنا الأمر بكتابة ;
الأن لو اردنا حذف المستخدم muse سوف يكون الأمر بهذا الشكل
mysql -e "DROP USER muse;"
كما نلاحظ ان المثال بالأعلا يحذف اليوزر بدون تحديد الهوست نيم. ولتحديد الهوست نيم اثناء حذف المستخدم. تكون صيغة الأمر بهذا الشكل
DROP USER 'User_Name_Here'@'localhost';
لو اردنا حذف المستخدم muse من الهوست نيم localhost سوف يكون الامر بهذا الشكل
mysql -e "DROP USER 'muse'@'localhost';"
ملاحظة: محاولة حذف مستخدم غير موجود اصلاً سوف يظهر لك خطأ. بعتبار ان المستخدم غير موجود اصلاً.
ملاحظة: عند حذف مستخدم ما. لن يتم حذف قاعدة البيانات المرتبطة مع المستخدم في هذا الاجراء. عملية حذف قاعدة البيانات منفصلة عن عملية حذف المستخدم.
اعادة تسمية مستخدم في MySQL server
حقيقة ان الأغلبية عند محاولة تغييرهم لمسمى اسم المستخدم يقوم بحذف المستخدم الحالي وإنشاء مستخدم جديد ومن ثم يقوم بربطة من جديد بالقاعدة. لماذا هذا التعب كلة ؟ وهنالك امر جاهز في mysql يقوم بهذه الوظيفة بشكل سريع.
صيغة امر اعادة تسمية مستخدم تكون بهذا الشكل
RENAME USER Old_User_name_here TO New_User_Name_here;
شرح للأمر. اولاً استخدمنا الأمر RENAME
وهذا يعني اننا نريد اعادة تسمية شيء معين, ثم قمنا بتحديد USER
وهذا يعني اننا نريد اعادة تسمية مستخدم, ثم وضعنا اسم المستخدم الحالي المراد تغييرة ثم TO
وهنا حددنا اننا نريد تغيرة إلى, ثم كتبنا اسم المستخدم الجديد الذي نريدة.
الأن لو اردت تغيير المستخدم muse إلى mustafa سوف يكون الامر بهذا الشكل
mysql -e "RENAME USER muse TO mustafa;"
لتحديد تغيير اسم المستخدم مع الهوست نيم سوف تكون صيغة الامر بهذا الشكل
RENAME USER 'Old_User_name_here'@'localhost' TO 'New_User_Name_here'@'localhost';
ولو اردت تغيير المستخدم muse إلى mustafa مع تحديد الهوست نيم سوف يكون الامر بهذا الشكل
mysql -e "RENAME USER 'muse'@'localhost' TO 'mustafa'@'localhost';"
ملاحظة اخيرة مهمة: البعض يضن ان مستخدمين mysql لهم صلة او علاقة مع مستخدمين النظام linux او اي نظام اخر. وهذا غير صحيح تماماً. مستخدمين mysql مفصولين بشكل كامل عن مستخدمين النظام وبما فيهم مدير mysql وهو root. مستخدمين mysql يتم إنشائهم للعمل في بيئة mysql فقط لاغير. ويتم حفظ المستخدمين بداخل جدول خاص بالمستخدمين.
إلى هنا ينتهي موضوعي. اذا كان لديك اي سؤال تفضل بكتابتة هنا. حاولت تبسيط الموضوع بقدر الامكان بحيث يكون مناسب للجميع, ولكن ان كان هنالك شيء غير واضح يمكنك كتابة سؤال عنة بشرط يكون بنفس هدف الموضوع هذا.
ان شاء الله موضوعي القادم في mysql سوف يكون بنفس هدف الموضوع هذا ولكن على مستوى قواعد البيانات وليس المستخدمين.
تحياتي للجميع. مصطفى البازي.
📮 المتابعة عبر البريد الالكتروني
عند الاشتراك سيصلك جديد منشوراتي ومقالاتي على ايميلك. لا يتم نشر اي اعلانات ابدًا، فقط المقالات التي انشرها هنا في مدونتي هذه.
التعليقات: 2 On انشاء او حذف مستخدم في MySQL Server
بارك الله فيك حبيبي على الشرح الرائع فعلا فكرة رائعة و ممتازة و سهلة
شكرا على الموضوع الجميل