اذهب إلى المحتوى

كيف تدير قواعد بيانات MySQL باستخدام mysqladmin


عبد اللطيف ايمش

أداة mysqladmin هي أداةٌ سطريةٌ (أي تعمل من سطر الأوامر) تأتي مع خادوم MySQL ويستعملها مدراء قواعد البيانات لإجراء مهام أساسية لإدارة قواعد MySQL مثل ضبط كلمة مرور المستخدم root أو تغييرها، ومراقبة عمليات mysql وإعادة تحديث امتيازات المستخدمين والتحقق من حالة الخدمة …إلخ.

mysql-2.png


سنضع في هذا الدرس بعض أوامر mysqladmin المفيدة والمُستعمَلة من مدراء النظام أو مدراء قواعد البيانات يوميًا. يجب أن يكون خادوم MySQL مثبتًا على نظامك لإجراء هذه المهام.
إذا لم يكن خادوم MySQL مثبتًا على نظامك، أو كنتَ تستعمل إصدارًا قديمًا منه، فأنصحك بتثبيت أو تحديث نسختك كما ذكرنا في هذه المقالة.

1. كيفية ضبط كلمة مرور المستخدم root في MySQL؟

إذا كانت لديك نسخةٌ حديثةُ التثبيت من خادوم MySQL، فلن تحتاج إلى استخدام كلمة مرور للاتصال بها عبر المستخدم root، لكن ذلك ليس آمنًا، وأنصحك بضبط كلمة مرور له، وذلك بتنفيذ الأمر الآتي:

# mysqladmin -u root password YOURNEWPASSWORD

2. كيفية تغيير كلمة مرور المستخدم root؟

إذا أردتَ تحديث أو تغيير كلمة مرور المستخدم root في قواعد بيانات MySQL، فيمكنك الاستعانة بالأمر الآتي. لنفترض مثلًا أنَّ كلمة مرورك القديمة هي 123456 وأردتَ الآن تغييرها إلى كلمةٍ أخرى ولتكن xyz123:

# mysqladmin -u root -p123456 password 'xyz123'

3. كيفية التحقق إذا كان خادوم MySQL يعمل؟

استعمل الأمر الآتي لتعرف إن كان خادوم MySQL يعمل أم لا:

# mysqladmin -u root -p ping
Enter password:
mysqld is alive

4. كيف أعرف إصدار MySQL الذي أعمل عليه؟

الأمر الآتي سيُظهِر إصدار MySQL المُثبَّت على خادومك، إضافةً إلى حالته:

# mysqladmin -u root -p version
Enter password:
mysqladmin  Ver 8.42 Distrib 5.5.28, for Linux on i686
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version          5.5.28
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 7 days 14 min 45 sec
Threads: 2  Questions: 36002  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.059

5. كيف أعرف ما هي حالة خادوم MySQL الآن؟

يمكن أن يُظهِر الأمر mysqladmin حالة uptime بالإضافة إلى عدد الخيوط (threads) وإحصائيات عن الاستعلامات:

# mysqladmin -u root -ptmppassword status
Enter password:
Uptime: 606704  Threads: 2  Questions: 36003  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.059

6. كيفية التحقق من حالة جميع متغيرات خادوم MySQL وقيمها؟

استخدم الخيار extended-status لأمر mysqladmin لرؤية حالة جميع متغيرات خادوم MySQL والقيم المرتبطة بها. يجب أن تكون المخرجات شبيهةً بما يلي:

# mysqladmin -u root -p extended-status
Enter password:
+------------------------------------------+-------------+
| Variable_name                            | Value       |
+------------------------------------------+-------------+
| Aborted_clients                          | 3           |
| Aborted_connects                         | 3           |
| Binlog_cache_disk_use                    | 0           |
| Binlog_cache_use                         | 0           |
| Binlog_stmt_cache_disk_use               | 0           |
| Binlog_stmt_cache_use                    | 0           |
| Bytes_received                           | 6400357     |
| Bytes_sent                               | 2610105     |
| Com_admin_commands                       | 3           |
| Com_assign_to_keycache                   | 0           |
| Com_alter_db                             | 0           |
| Com_alter_db_upgrade                     | 0           |
| Com_alter_event                          | 0           |
| Com_alter_function                       | 0           |
| Com_alter_procedure                      | 0           |
| Com_alter_server                         | 0           |
| Com_alter_table                          | 0           |
| Com_alter_tablespace                     | 0           |
+------------------------------------------+-------------+

7. كيفية معرفة قيم جميع المتغيرات المُفعّلة لخادوم MySQL؟

لرؤية جميع القيم التي تعمل حاليًا في خادوم MySQL، أدخِل الأمر الآتي:

# mysqladmin  -u root -p variables
Enter password:
+---------------------------------------------------+----------------------------------------------+
| Variable_name                                     | Value                                        |
+---------------------------------------------------+----------------------------------------------+
| auto_increment_increment                          | 1                                            |
| auto_increment_offset                             | 1                                            |
| autocommit                                        | ON                                           |
| automatic_sp_privileges                           | ON                                           |
| back_log                                          | 50                                           |
| basedir                                           | /usr                                         |
| big_tables                                        | OFF                                          |
| binlog_cache_size                                 | 32768                                        |
| binlog_direct_non_transactional_updates           | OFF                                          |
| binlog_format                                     | STATEMENT                                    |
| binlog_stmt_cache_size                            | 32768                                        |
| bulk_insert_buffer_size                           | 8388608                                      |
| character_set_client                              | latin1                                       |
| character_set_connection                          | latin1                                       |
| character_set_database                            | latin1                                       |
| character_set_filesystem                          | binary                                       |
| character_set_results                             | latin1                                       |
| character_set_server                              | latin1                                       |
| character_set_system                              | utf8                                         |
| character_sets_dir                                | /usr/share/mysql/charsets/                   |
| collation_connection                              | latin1_swedish_ci                            |
+---------------------------------------------------+----------------------------------------------+

8. كيفية التحقق من جميع العمليات التي يستخدمها خادوم MySQL؟

الأمر الآتي سيعرض جميع العمليات التي تستعملها استعلامات قواعد بيانات MySQL:

# mysqladmin -u root -p processlist
Enter password:
+-------+---------+-----------------+---------+---------+------+-------+------------------+
| Id    | User    | Host            | db      | Command | Time | State | Info             |
+-------+---------+-----------------+---------+---------+------+-------+------------------+
| 18001 | rsyslog | localhost:38307 | rsyslog | Sleep   | 5590 |       |                  |
| 18020 | root    | localhost       |         | Query   | 0    |       | show processlist |
+-------+---------+-----------------+---------+---------+------+-------+------------------+

9. كيفية إنشاء قاعدة بيانات على خادوم MySQL؟

استخدم الأمر الآتي لإنشاء قاعدة بيانات جديدة في MySQL:

# mysqladmin -u root -p create databasename
Enter password:

للتحقق من إنشائها:

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18027
Server version: 5.5.28 MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| databasename       |
| mysql              |
| test               |
+--------------------+
8 rows in set (0.01 sec)
mysql>

10. كيفية حذف قاعدة بيانات في خادوم MySQL؟

لحذف قاعدة بيانات في خادوم MySQL، فأدخِل الأمر الآتي. سيُطلَب منك الموافقة على ذلك بكتابة الحرف y:

# mysqladmin -u root -p drop databasename
Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'databasename' database [y/N] y
Database "databasename" dropped

11. كيفية إعادة تحميل أو إعادة تحديث الامتيازات في MySQL؟

الأمر reload سيطلب من الخادوم إعادة تحميل جداول الامتيازات، بينما الأمر refresh سيؤدي إلى إعادة قراءة جميع الجداول وإعادة فتح ملفات التسجيل (log files):

# mysqladmin -u root -p reload;
# mysqladmin -u root -p refresh

12. كيفية إيقاف خادوم MySQL بأمان؟

لإيقاف خادوم MySQL إيقافًا آمنًا، فاكتب الأمر الآتي:

mysqladmin -u root -p shutdown
Enter password:

أو يمكنك استخدام الأمرين الآتيين لتشغيل أو إيقاف خادوم MySQL:

# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start

13. بعض أوامر «التنظيف»

هذه بعض أوامر التنظيف (flush) مع شرحٍ لها:

  • flush-hosts: حذف جميع معلومات المُضيف من التخزين المؤقت.
  • flush-tables: «تنظيف» جميع الجداول.
  • flush-threads: تنظيف التخزين المؤقت للخيوط (threads).
  • flush-logs: تنظيف السجلات.
  • flush-privileges: إعادة تحميل جداول الامتيازات (مثل reload).
  • flush-status: مسح متغيرات الحالة (status variables).
  • # mysqladmin -u root -p flush-hosts
    # mysqladmin -u root -p flush-tables
    # mysqladmin -u root -p flush-threads
    # mysqladmin -u root -p flush-logs
    # mysqladmin -u root -p flush-privileges
    # mysqladmin -u root -p flush-status

     

14. كيفية «قتل» عمليات عملاء MySQL المتوقفة؟

يمكنك استخدام الأمر الآتي للتعرف على عمليات عملاء MySQL المتوقفة (sleeping):

# mysqladmin -u root -p processlist
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 5  | root | localhost |    | Sleep   | 14   |       |                  |
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

يمكنك الآن تشغيل الأمر الآتي مع استخدام الخيار kill متبوعًا برقم العملية كما يلي:

# mysqladmin -u root -p kill 5
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

أما إذا أردت «قتل» (اصطلاح «قتل» [kill] في يونكس يعني إيقاف العملية قسريًا) أكثر من عملية معًا، فافصل بين أرقام العمليات بفاصلة كما في المثال الآتي:

# mysqladmin -u root -p kill 5,10

15. كيفية تشغيل أكثر من أمر لأداة mysqladmin معًا؟

إذا أردت تشغيل أكثر من أمر mysqladmin معًا فيمكنك فعل ذلك بذكرها بعضها تلو بعض كالآتي:

# mysqladmin  -u root -p processlist status version
Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Uptime: 3801  Threads: 1  Questions: 15  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.003
mysqladmin  Ver 8.42 Distrib 5.5.28, for Linux on i686
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version          5.5.28
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 1 hour 3 min 21 sec
Threads: 1  Questions: 15  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.003

16. كيفية الاتصال بخادوم MySQL بعيد

للاتصال بخادوم MySQL بعيد فاستخدام الخيار ‎-h (أي host، ويعني المضيف) وبعده عنوان IP للخادوم البعيد:

# mysqladmin  -h 172.16.25.126 -u root -p

17. كيفية تنفيذ أمر على خادوم MySQL بعيد

لنقل أنك تريد معرفة حالة (status) خادوم MySQL بعيد، فسيكون الأمر حينئذٍ كالآتي:

# mysqladmin  -h 172.16.25.126 -u root -p status

18. تشغيل وإيقاف استنساخ MySQL على خادوم ثانوي

استخدم الأمرين الآتيين لتشغيل أو إيقاف استنساخ MySQL (أي MySQL replication):

# mysqladmin  -u root -p start-slave
# mysqladmin  -u root -p stop-slave

19. كيفية تخزين معلومات التنقيح في MySQL إلى السجلات

معلومات التنقيح هي المعلومات التي تخبرنا ما هو استخدام الذاكرة ومعلومات متفرقة عن الاستعلامات، ويمكننا كتابتها إلى ملف سجل MySQL باستخدام الأمر الآتي:

# mysqladmin  -u root -p debug
Enter password:

20. كيفية رؤية الخيارات المتاحة للاستخدام في mysqladmin

لمعرفة المزيد من خيارات الأمر mysqladmin وطريقة استخدامه، فاطلع على المساعدة التي تظهر بكتابة الأمر الآتي، والذي سيعرض قائمة بالخيارات المتوافرة:

# mysqladmin --help

حاولتُ قدر المستطاع أن أُضمِّن أغلبية أوامر mysqladmin مع أمثلةٍ عنها في هذا الدرس، لكن لا مانع من محاولة استكشاف غيرها، وربما تشاركنا بها في التعليقات.
ترجمة -وبتصرّف- للمقال ‎20 MySQL (Mysqladmin) Commands for Database Administration in Linux لصاحبه Ravi Saive

تم التعديل في بواسطة يوغرطة بن علي


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...