mysqladmin دستور مدیریتی پایگاه داده MySQL که در تمامی نسخه های نصب شده در سیستم عامل های گوناگون وجود دارد. با این دستور می توانید پایگاه داده ای را ایجاد/حذف کنید، وضعیت فعلی سیستم پایگاه داده (MySQL Server) را مشاهده کنید، متغیر های وضعیتی سیستم (Status Variable) و متغیر های سیستمی (System Variable) را مشاهده کنید و غیره. در تمامی مثال های زیر از کاربرد این دستور توسط کاربر root به پایگاه داده سرور محلی متصل می شویم. منظور از سرور محلی یعنی پایگاه داده ای که روی همین ماشینی که دستور را اجرا می کنیم. اگر می خواهید به سرور دیگری متصل شوید لازم است که آدرس آنرا توسط سوئیچ h- تعیین کنید.سه سوئیچی که کاربرد فراوان دارند :
- u- : برای تعیین کاربری که می خواهیم با مجوز های آن به سیستم متصل شویم. (در تمامی مثال های پیش رو، کاربر root می باشد)
- p- : برای وارد کردن پسورد کاربر تعیین شده توسط سوئیچ u-. پس از Enter زدن دستور mysqladmin یک Prompt برای وارد کردن پسورد نشان داده می شود.
mysqladmin -u USERNAME -h HOSTNAME/IP_ADDRESS OTHER_OPTIONS -p
mysqladmin -u USERNAME -h HOSTNAME/IP_ADDRESS -p OTHER_OPTIONS
mysqladmin -u USERNAME -p -h HOSTNAME/IP_ADDRESS OTHER_OPTIONS
همانطور که می بینید محل قرارگیری سوئیچ p- تفاوتی ندارد و نهایتا Prompt نشان داده می شود. روش دیگر آوردن پسورد کاربر مورد نظر بلافاصله و بدون هیچ فاصله ای پس از سویچ p- است. در این حالت دیگر Prompt نشان داده نمی شود.
mysqladmin -u USERNAME -pUSER_PASSWORD OTHER_OPTIONS
- h- : برای تعیین سروری که می خواهید به آن متصل شوید. این سوئیچ اختیاری است، مانند دستور بالا که نیاوردیم و به یک پایگاه داده محلی متصل شده ایم.
در ادامه مثال هایی از کاربرد دستور گفته می شود :
- تغییر پسورد کاربران توسط دستور mysqladmin
در این مطلب به طور کامل گفته شده است.
- آیا MySQL Server در حال اجرا شدن است؟
اصطلاحا می گویند که آیا MySQL Server در حال اجرا یا UP می باشد یه نه. توسط دستور زیر و با استفاده از ping بررسی می کنیم.
mysqladmin -u root -p ping
اگر سرور UP باشد خروجی زیر خواهد بود
mysqld is alive
و اگر می خواهید UP بودن سرور راه دور را بررسی کنید :
mysqladmin -u root -p -h 192.168.204.128 ping
- پیدا کردن اطلاعاتی از نسخه نصب شده بر روی سیستم
mysqladmin -u root -p version
خروجی زیر مربوط به سیستم عامل ویندوز می باشد :
mysqladmin Ver 8.42 Distrib 5.1.53, for Win32 on ia32
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL licenseServer version 5.1.53-community
Protocol version 10
Connection localhost via TCP/IP
TCP port 3306
Uptime: 3 hours 46 min 8 secThreads: 1 Questions: 86 Slow queries: 0 Opens: 39 Flush tables: 1 Open tab
les: 0 Queries per second avg: 0.6
- پیدا کردن وضعیت سروری که به آن با mysqladmin متصل شده اید
خروجی دستور زیر دقیقن مشابه سه خط خروجی بالا می باشد. خروجی دستور زیر اطلاعاتی از مدت زمان up بودن سرور (MySQL Server) و تعداد اتصال ها و غیره را نشان می دهد.
mysqladmin -u root -p status
Uptime: 14067 Threads: 1 Questions: 87 Slow queries: 0 Opens: 39 Flush tables: 1 Open tables: 0 Queries per second avg: 0.6
Uptime : مدت زمان UP بودن سرور MySQL به ثانیه.
Threads : مجموع تعداد اتصال های کلاینت ها به سرور.
Questions : تعداد پرس و جوی های انجام شده در سروراز زمان Startup شدن.
Slow queries : تعداد پرس و جویی های که مدت زمان اجرا شدن آنها بیش از مقدار متغیر long_query_time بوده است.
Opens : تعداد جدول های باز شده توسط سرور.
Flush Tables : چند بار جداول Flush شده اند.
Open tables : تعداد جداول باز شده در پایگاه داده.
- چگونه متغیر های وضعیتی (Status Variable) و مقادیر کنونی آنها را ببینیم
mysqladmin -u root -p extended-status
دستور پیشین ( مشاهده وضعیت سرور) اطلاعات خود را از این متغیر ها می خواند. بطور مثال برای نشان دادن تعداد پرس و جوی های انجام شده (Questions) مقدار متغیر Queries را می خواند. یا حداکثر تعداد اتصال های همزمان به سرور، در متغیر Connections ذخیره شده است.
- چگونه متغیر های سیستمی (System Variables) ها و مقادیر آنها را ببینیم
mysqladmin -u root -p variables
- پیدا کردن فرایند ها/پرس و جوی های در حال اجرا بر روی سرور
mysqladmin -u root -p processlist
اگر می خواهید هر چند ثانیه یکبار (مثلن هر 5 ثانیه یکبار) خروجی بالا نشان داده شود، دستور زیر را اجرا کنید :
mysqladmin -u root -p processlist -i 5
- ایجاد یک پایگاه داده
بطور معمول پس از ورود به سرور توسط دستور mysql با دستور زیر یک پایگاه داده جدید می سازیم
CREATE DATABASE DB_NAME
اما با دستور زیر و با کاربری که مجوز ایجاد یک پایگاه داده را دارد نیز می توانید یک Database بسازید
mysqladmin -u root -p create DB_NAME
- پاک کردن یک پایگاه داده
بطور معمول پس از ورود به سرور توسط دستور mysql با دستور زیر یک پایگاه داده را پاک می کنیم
DROP DATABASE DB_NAME
اما با دستور زیر و با کاربری که مجوز حذف یک پایگاه داده را دارد نیز می توانید یک Database را پاک کنید
mysqladmin -u root -p drop DB_NAME
- چگونه MySQL Server را بصورت امن Shutdown کنیم
mysqladmin -u root -p shutdown
در سیستم عامل های لینوکسی نیز می توانید با دستور های زیر به ترتیب پایگاه داده زا Shutdown و Start کنید
etc/rc.d/init.d/mysqld stop/
etc/rc.d/init.d/mysqld start/
اگر MySQL Server را Shutdown کنید و بخواهید به آن مصتل شوید، خطای زیر نشان داده می شود :
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’