| MARIADB(1) | MariaDB Database System | MARIADB(1) |
نام (NAME)
mariadb - ابزار خط فرمان MariaDB (دستور mysql اکنون یک پیوند نمادین به mariadb است)
خلاصه دستور (SYNOPSIS)
mariadb [options] db_name
توضیحات (DESCRIPTION)
mariadb یک پوسته ساده SQL (با قابلیتهای GNU readline) است. این ابزار از استفاده تعاملی و غیرتعاملی پشتیبانی میکند. هنگامی که به صورت تعاملی استفاده شود، نتایج پرسمان در قالب یک جدول ASCII نمایش داده میشوند. هنگامی که به صورت غیرتعاملی (برای مثال، به عنوان یک فیلتر) استفاده شود، نتایج در قالب مقادیر جداشده با تب (tab-separated) ارائه میشوند. قالب خروجی را میتوان با استفاده از گزینههای دستور تغییر داد.
اگر به دلیل حافظه ناکافی برای مجموعهنتایج بزرگ با مشکل مواجه شدید، از گزینه --quick استفاده کنید. این گزینه mariadb را وادار میکند تا نتایج را به جای دریافت کل مجموعه نتیجه و بافر کردن آن در حافظه پیش از نمایش، سطر به سطر از سرور دریافت کند. این کار با بازگرداندن مجموعه نتایج با استفاده از تابع C API به نام mariadb_use_result() در کتابخانه کلاینت/سرور، به جای mysql_store_result() انجام میشود.
استفاده از mariadb بسیار آسان است. آن را از اعلان مفسر دستورات خود به شکل زیر فراخوانی کنید:
shell> mariadb db_name
یا:
shell> mariadb --user=user_name --password=your_password db_name
سپس یک عبارت SQL را تایپ کرده، آن را با “;”، \g، یا \G به پایان برسانید و Enter را فشار دهید.
فشردن Control-C باعث میشود mariadb تلاش کند دستور جاری را متوقف کند. اگر این کار انجامشدنی نباشد، یا اگر پیش از متوقف شدن دستور مجدداً Control-C فشرده شود، mariadb خارج میشود.
میتوانید دستورات SQL را درون یک فایل اسکریپت (batch file) مانند زیر اجرا کنید:
shell> mariadb db_name < script.sql > output.tab
mariadb از گزینههای زیر پشتیبانی میکند، که میتوان آنها را در خط فرمان یا در گروههای فایل تنظیمات [mariadb]، [client]، [client-server] یا [client-mariadb] مشخص کرد. mariadb همچنین از گزینهها برای پردازش فایلهای تنظیمات پشتیبانی میکند.
نمایش پیام راهنما و خروج.
متوقف کردن عملیاتهای 'source filename' در صورت بروز خطا.
فعالسازی درهمسازی مجدد خودکار (rehashing). این گزینه بهطور پیشفرض فعال است و تکمیل نام پایگاهداده، جدول و ستون را ممکن میسازد. برای غیرفعال کردن rehashing از --disable-auto-rehash، --no-auto-rehash یا --skip-auto-rehash استفاده کنید. این کار باعث میشود mariadb سریعتر شروع به کار کند، اما در صورت تمایل به استفاده از تکمیل نام، باید دستور rehash را اجرا کنید.
برای تکمیل یک نام، بخش اول آن را وارد کرده و کلید Tab را فشار دهید. اگر نام یکتا و بدون ابهام باشد، mariadb آن را تکمیل میکند. در غیر این صورت، میتوانید دوباره Tab را فشار دهید تا نامهای ممکنی را که با آنچه تا کنون تایپ کردهاید آغاز میشوند مشاهده کنید. در صورتی که هیچ پایگاهدادهٔ پیشفرضی وجود نداشته باشد، تکمیل نام انجام نمیشود.
تغییر خودکار به حالت خروجی عمودی در صورتی که عرض نتیجه بیشتر از عرض ترمینال باشد.
چاپ نتایج با استفاده از tab به عنوان جداکننده ستونها، به طوری که هر سطر در یک خط جدید قرار گیرد. با این گزینه، mariadb از فایل تاریخچه استفاده نمیکند.
حالت دستهای (Batch mode) منجر به قالب خروجی غیرجدولی و گریزدهی (escaping) نویسههای خاص میشود. گریزدهی را میتوان با استفاده از حالت خام (raw) غیرفعال کرد؛ توضیحات مربوط به گزینهٔ --raw را ببینید.
حالت دودویی اجازه میدهد دنبالههای نویسهای مشخصی به عنوان داده پردازش شوند که در غیر این صورت توسط تجزیهکننده با معنای خاصی پردازش میشدند. به طور مشخص، این سوییچ تجزیه تمام دستورات کلاینت را به جز \C و DELIMITER در حالت غیرتعاملی (یعنی زمانی که حالت دودویی با ۱) ورودی لولهکشیشده (piped)، ۲) گزینهٔ --batch در mariadb یا ۳) دستور 'source' ترکیب شود) غیرفعال میکند. همچنین، در حالت دودویی، رخدادهای '\r\n' و ASCII '\0' در رشتهها حفظ میشوند، در حالی که به طور پیشفرض، '\r\n' به '\n' تبدیل شده و وجود '\0' در ورودی کاربر مجاز نیست.
دایرکتوری محل نصب مجموعههای نویسه (character sets).
نوشتن نام ستونها در نتایج.
نمایش متادادههای مجموعه نتایج.
آیا کامنتها در دستورهای ارسالی به سرور حفظ شوند یا خیر. مقدار پیشفرض --skip-comments (حذف کامنتها) است، با --comments (حفظ کامنتها) فعال میشود.
فشردهسازی تمام اطلاعات ارسالشده میان کلاینت و سرور در صورتی که هر دو از فشردهسازی پشتیبانی کنند.
تنظیم تعداد ثانیهها پیش از اتمام مهلت اتصال (timeout). (مقدار پیشفرض 0 است.)
پایگاه داده برای استفاده.
نوشتن یک لاگ اشکالزدایی (debug). یک رشتهٔ معمول برای debug_options مقدار 'd:t:o,file_name' است. مقدار پیشفرض 'd:t:o,/tmp/mysql.trace' است.
چاپ برخی اطلاعات اشکالزدایی هنگام خروج برنامه.
چاپ اطلاعات اشکالزدایی و آمار مصرف حافظه و CPU هنگام خروج برنامه.
پلاگین احراز هویت پیشفرض سمت کلاینت برای استفاده.
استفاده از charset_name به عنوان مجموعه نویسه پیشفرض برای کلاینت و اتصال.
یک مشکل رایج که هنگام استفاده سیستمعامل از utf8 یا مجموعه نویسههای چندبایتی دیگر ممکن است رخ دهد این است که خروجی کلاینت mariadb بهدلیل استفاده کلاینت MariaDB از مجموعه نویسه latin1 بهطور پیشفرض، نادرست قالببندی میشود. معمولاً میتوانید این مشکلات را با استفاده از این گزینه برطرف کنید تا کلاینت وادار شود بهجای آن از مجموعه نویسه سیستم استفاده کند.
تنظیم filename به عنوان فایلی که پس از خوانده شدن فایلهای گزینههای پیشفرض سراسری، گزینههای پیشفرض از آن خوانده شوند. باید به عنوان اولین گزینه ارائه شود.
تنظیم filename به عنوان فایلی برای خواندن گزینههای پیشفرض، که جایگزین فایلهای پیشفرض سراسری میشود. باید به عنوان اولین گزینه ارائه شود.
افزون بر گروههای نامبردهشده در خط فرمان، گروههایی را که پسوند مشخصشده را دارند نیز میخواند.
جداکنندهٔ دستورها را تنظیم میکند. مقدار پیشفرض نویسهٔ نقطهویرگول (“;”) است.
دستورهای نامدار را غیرفعال میکند. تنها از قالب \* استفاده کنید، یا از دستورهای نامدار تنها در ابتدای خطی که به یک نقطهویرگول (“;”) ختم میشود استفاده نمایید. mariadb بهطور پیشفرض با این گزینه بهصورت فعال شروع به کار میکند. با این وجود، حتی با این گزینه، دستورهای با قالب بلند همچنان از خط اول کار میکنند. بخش “MARIADB COMMANDS” را ببینید.
گزینهٔ منسوخشده. تنها برای سازگاری با MySQL وجود دارد.
دستور را اجرا کرده و خارج میشود. گزینهٔ --force و فایل تاریخچه را غیرفعال میکند. قالب خروجی پیشفرض مشابه خروجی حاصل از --batch است.
حتی در صورت بروز خطای SQL به کار ادامه میدهد. گزینهٔ --abort-source-on-error را برابر 0 تنظیم میکند.
به سرور MariaDB روی میزبان مشخصشده متصل میشود.
خروجی را در قالب HTML تولید میکند.
فاصلههای پس از نام توابع را نادیده میگیرد. اجازه میدهد بین نام تابع و '(' فاصله (شامل نویسههای تب و نویسههای خط جدید) قرار گیرد. عیب این گزینه این است که باعث میشود توابع توکار به کلمات رزروشده تبدیل شوند.
دستور SQL برای اجرا هنگام اتصال به سرور MariaDB. در صورت اتصال مجدد، بهطور خودکار دوباره اجرا خواهد شد.
شمارهٔ خطوط را برای خطاها مینویسد. این ویژگی را با --skip-line-numbers غیرفعال کنید.
فعال یا غیرفعال کردن قابلیت LOCAL برای LOAD DATA INFILE. در صورت تعیین نشدن مقدار، این گزینه LOCAL را فعال میکند. این گزینه میتواند بهصورت --local-infile=0 یا --local-infile=1 برای غیرفعال یا فعالسازی صریح LOCAL مشخص شود. فعالسازی LOCAL در صورتی که سرور نیز از آن پشتیبانی نکند، هیچ اثری ندارد.
تنظیم حداکثر طول بسته برای ارسال به سرور یا دریافت از آن. (مقدار پیشفرض 16MB و بیشترین مقدار 1GB است.)
تنظیم حد خودکار برای ردیفها در یک join هنگام استفاده از --safe-updates. (مقدار پیشفرض 1,000,000 است.)
فعالسازی دستورهای نامدار mariadb. دستورهای با قالب طولانی مجاز هستند، نه فقط دستورهای با قالب کوتاه. برای مثال، هر دوی quit و \q شناخته میشوند. از --skip-named-commands برای غیرفعال کردن دستورهای نامدار استفاده کنید. بخش با عنوان “MARIADB COMMANDS” را ببینید. بهطور پیشفرض غیرفعال است.
تنظیم اندازه بافر برای ارتباطات TCP/IP و سوکت. (مقدار پیشفرض 16KB است.)
این گزینه اثری یکسان با --skip-auto-rehash دارد. توضیحات مربوط به --auto-rehash را ببینید.
هنگام بروز خطا بوق صوتی پخش نشود.
عدم خواندن گزینههای پیشفرض از هیچ فایل گزینهای. این گزینه باید بهعنوان نخستین آرگومان داده شود.
صرفنظر کردن از عبارتها، مگر مواردی که در زمان انتخاب پایگاه دادهٔ پیشفرضِ مشخصشده در خط فرمان اجرا میشوند. این پالایش محدود بوده و تنها مبتنی بر عبارتهای USE است. این گزینه برای نادیده گرفتن بهروزرسانیهای پایگاههای داده دیگر در binary log کاربرد دارد.
استفاده از دستور دادهشده برای صفحهبندی خروجی پرسوجو. اگر دستور مشخص نشود، صفحهبند پیشفرض مقدار متغیر محیطی PAGER شما خواهد بود. صفحهبندهای معتبر عبارتند از less، more، cat [> filename] و غیره. این گزینه تنها در Unix و فقط در حالت تعاملی عمل میکند. برای غیرفعالسازی صفحهبندی، از --skip-pager استفاده کنید. بخش با عنوان “MARIADB COMMANDS” صفحهبندی خروجی را بیشتر توضیح میدهد.
گذرواژهای که هنگام اتصال به سرور استفاده میشود. اگر از فرم کوتاه گزینه (-p) استفاده میکنید، نباید بین گزینه و گذرواژه فاصله (space) وجود داشته باشد. اگر مقدار password را پس از گزینهٔ --password یا -p در خط فرمان وارد نکنید، mariadb آن را از شما درخواست میکند.
مشخص کردن گذرواژه در خط فرمان ناامن تلقی میشود. میتوانید برای جلوگیری از ارائهٔ گذرواژه در خط فرمان، از یک فایل تنظیمات (option file) استفاده کنید.
در ویندوز، اتصال به سرور از طریق named pipe انجام میشود. این گزینه تنها در صورتی اعمال میشود که سرور از اتصالات named-pipe پشتیبانی کند.
دایرکتوری افزونههای (plugins) سمت کلاینت.
شماره درگاه TCP/IP برای استفاده در اتصال، یا مقدار 0 برای مقدار پیشفرض که به ترتیب اولویت از my.cnf، سپس $MYSQL_TCP_PORT، سپس /etc/services و در نهایت پیشفرض داخلی (3306) انتخاب میشود. هنگامی که این گزینه در خط فرمان بدون سایر مشخصههای اتصال تعیین شود، مقدار --protocol=tcp را تحمیل میکند.
فهرست آرگومانهای برنامه را چاپ کرده و خارج میشود. این گزینه باید به عنوان نخستین آرگومان داده شود.
گزارشهای پیشرفت را برای دستورهای طولانیمدت (مانند ALTER TABLE) دریافت میکند. (پیشفرض فعال است؛ برای غیرفعالسازی از --skip-progress-reports استفاده کنید.)
اعلان (prompt) را به قالب مشخصشده تنظیم میکند. توالیهای ویژهای که اعلان میتواند شامل آنها باشد، در بخش “MARIADB COMMANDS” شرح داده شدهاند.
پروتکل اتصالی که برای اتصال به سرور استفاده میشود. این گزینه زمانی کاربرد دارد که پارامترهای دیگر اتصال در حالت عادی پروتکلی غیر از پروتکل مورد نظر شما را انتخاب کنند.
نتیجهٔ هر پرسوجو را ذخیرهسازی موقت (cache) نمیکند و هر سطر را به محض دریافت به خروجی میفرستد. اگر خروجی متوقف یا معلق شود، این امر ممکن است باعث کُند شدن سرور گردد. با استفاده از این گزینه، mariadb از فایل تاریخچه استفاده نخواهد کرد.
برای خروجی جدولی، “کادربندی” دور ستونها امکان تفکیک مقادیر ستونها از یکدیگر را فراهم میکند. برای خروجی غیرجدولی (مانند خروجی حالت batch یا هنگامی که گزینهٔ --batch یا --silent داده شده باشد)، نویسههای ویژه در خروجی گریز داده میشوند (escaped) تا بهسادگی قابل تشخیص باشند. خط جدید، تب، NUL و بکاسلش بهصورت \n، \t، \0 و \\ نوشته میشوند. گزینهٔ --raw این گریز نویسهها را غیرفعال میکند.
مثال زیر تفاوت خروجی جدولی در مقابل غیرجدولی و استفاده از حالت raw را برای غیرفعال کردن گریز نویسهها نشان میدهد:
در صورت قطع ارتباط با سرور، بهطور خودکار برای اتصال مجدد تلاش میکند. با هر بار قطع ارتباط، یک بار تلاش برای اتصال مجدد صورت میگیرد. این گزینه بهطور پیشفرض فعال است؛ برای غیرفعال کردن از --skip-reconnect یا --disable-reconnect استفاده کنید.
تنها به آن دسته از دستورهای UPDATE و DELETE اجازه میدهد که سطرهای مورد نظر برای تغییر را با استفاده از مقادیر کلید مشخص کرده باشند. اگر این گزینه را در یک فایل گزینهها تنظیم کردهاید، میتوانید با استفاده از --safe-updates در خط فرمان آن را بازنویسی کنید. برای اطلاعات بیشتر دربارهٔ این گزینه، به بخش “MARIADB TIPS” مراجعه کنید.
گذرواژهها را با قالب قدیمی (پیش از 4.1.1) به سرور ارسال نمیکند. این کار از اتصال به سرورها جلوگیری میکند، مگر برای سرورهایی که از قالب جدیدتر گذرواژه استفاده میکنند.
تعیین محدودیت خودکار برای SELECT هنگام استفاده از --safe-updates. (مقدار پیشفرض 1,000 است.)
ارسال name بهعنوان یک پارامتر به سرور توکار (embedded server).
باعث میشود هشدارها در صورت وجود، پس از هر دستور نمایش داده شوند. این گزینه در هر دو حالت تعاملی و دستهای اعمال میشود.
سیگنالهای SIGINT (معمولاً حاصل فشردن Control-C) را نادیده میگیرد.
حالت بیصدا. تولید خروجی کمتر. این گزینه را میتوان چندین بار مشخص کرد تا خروجی کمتر و کمتری تولید گردد.
این گزینه منجر به خروجی با قالب غیرجدولی و گریز دادن نویسههای ویژه میشود. گریزدهی را میتوان با استفاده از حالت خام (raw) غیرفعال کرد؛ توضیحات مربوط به گزینهٔ --raw را ببینید.
غیرفعالسازی هشبندی مجدد خودکار. هممعنی با --disable-auto-rehash.
نام ستونها را در نتایج نمینویسد.
شماره خطوط را برای خطاها درج نمیکند. هنگامی که میخواهید فایلهای نتیجه شامل پیامهای خطا را مقایسه کنید مفید است.
برای اتصال به localhost، فایل سوکت یونیکس (Unix socket) برای استفاده، یا در Windows، نام لوله نامگذاریشده (named pipe) برای استفاده. هنگام مشخص شدن در خط فرمان بدون سایر مشخصههای اتصال، --protocol=socket را تحمیل میکند؛ در Windows، گزینه --protocol=pipe را تحمیل میکند.
فعالسازی SSL برای اتصال (بهطور خودکار با پرچمهای دیگر فعال میشود). با --skip-ssl غیرفعال میشود.
فایل CA در قالب PEM (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
دایرکتوری CA (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
گواهی X509 در قالب PEM (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
الگوریتم رمزنگاری (cipher) SSL مورد استفاده (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
کلید X509 در قالب PEM (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
فهرست ابطال گواهی (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
مسیر فهرست ابطال گواهی (مستندات OpenSSL بررسی شود، مستلزم --ssl است).
نمایش خروجی در قالب جدول. این حالت برای استفاده تعاملی پیشفرض است، اما میتواند برای تولید خروجی جدولی در حالت دستهای (batch) نیز استفاده شود.
الحاق یک رونوشت از خروجی به فایل دادهشده. این گزینه تنها در حالت تعاملی کار میکند. بخش موسوم به “MARIADB COMMANDS”، درباره فایلهای tee توضیحات بیشتری ارائه میدهد.
تخلیه بافر پس از هر پرسوجو.
نام کاربری MariaDB جهت استفاده هنگام اتصال به سرور.
حالت پرگو (verbose). تولید خروجی بیشتر درباره کارهایی که برنامه انجام میدهد. این گزینه میتواند چندین بار مشخص شود تا خروجی باز هم بیشتری تولید کند. (برای نمونه، -v -v -v حتی در حالت دستهای نیز خروجی را در قالب جدول تولید میکند.)
نمایش اطلاعات نگارش و خروج.
چاپ سطرهای خروجی پرسوجو بهصورت عمودی (یک سطر برای هر مقدار ستون). بدون این گزینه، میتوانید خروجی عمودی را برای عبارات تکی با خاتمه دادن آنها با \G مشخص کنید.
اگر اتصال برقرار نشود، به جای لغو عملیات، منتظر بماند و دوباره تلاش کند.
تولید خروجی XML. خروجی حاصل در حالتی که --xml همراه با mariadb استفاده شود با خروجی mariadb-dump --xml یکسان است. برای جزئیات به mariadb-dump(1) مراجعه کنید.
خروجی XML همچنین از یک فضای نام XML استفاده میکند، همانطور که در اینجا نشان داده شده است:
shell> mariadb --xml -uroot -e "SHOW VARIABLES LIKE 'version%'" <?xml version="1.0"?> <resultset statement="SHOW VARIABLES LIKE 'version%'" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="Variable_name">version</field> <field name="Value">5.0.40-debug</field> </row> <row> <field name="Variable_name">version_comment</field> <field name="Value">Source distribution</field> </row> <row> <field name="Variable_name">version_compile_machine</field> <field name="Value">i686</field> </row> <row> <field name="Variable_name">version_compile_os</field> <field name="Value">suse-linux-gnu</field> </row> </resultset>همچنین میتوانید متغیرهای زیر را با استفاده از --var_name=value تنظیم کنید.
تعداد ثانیهها پیش از اتمام مهلت اتصال. (مقدار پیشفرض 0 است.)
حداکثر طول بسته برای ارسال به سرور یا دریافت از آن. (مقدار پیشفرض 16MB است.)
محدودیت خودکار برای سطرهای یک پیوند (join) هنگام استفاده از --safe-updates. (مقدار پیشفرض 1,000,000 است.)
اندازه بافر برای ارتباطات TCP/IP و سوکت. (مقدار پیشفرض 16KB است.)
محدودیت خودکار برای دستورهای SELECT هنگام استفاده از --safe-updates. (مقدار پیشفرض 1,000 است.)
در یونیکس، کلاینت mariadb پیشینهای از دستورهای اجراشده را در یک فایل تاریخچه مینویسد. بهطور پیشفرض، نام این فایل .mariadb_history است و در دایرکتوری خانگی شما ایجاد میشود. برای سازگاری با نسخههای پیشین، در صورت وجود .mariadb_history و نبود .mariadb_history از آن استفاده خواهد شد. برای مشخص کردن فایلی متفاوت، مقدار متغیر محیطی MARIADB_HISTFILE را تنظیم کنید. در صورتی که MARIADB_HISTFILE موجود نباشد، متغیر محیطی MYSQL_HISTFILE استفاده خواهد شد.
فایل .mariadb_history باید با حالت دسترسی محدودکننده محافظت شود، زیرا ممکن است اطلاعات حساسی مانند متن دستورهای SQL حاوی گذرواژه در آن نوشته شود.
اگر مایل به نگهداری فایل تاریخچه نیستید، در صورت وجود ابتدا .mariadb_history را حذف کرده و سپس از یکی از روشهای زیر استفاده کنید:
shell> ln -s /dev/null $HOME/.mariadb_history
کافی است این کار را تنها یک بار انجام دهید.
mariadb هر عبارت SQL را که صادر میکنید، برای اجرا به سرور ارسال میکند. همچنین مجموعهای از دستورها وجود دارد که خود mariadb آنها را تفسیر میکند. برای مشاهده فهرستی از این دستورها، عبارت help یا \h را در اعلان mariadb> وارد کنید:
mariadb> help
List of all MariaDB commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for 'help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mariadb server, display result vertically.
exit (\q) Exit mariadb. Same as quit.
go (\g) Send command to mariadb server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mariadb prompt.
quit (\q) Quit mariadb.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
هر دستور هم یک شکل بلند و هم یک شکل کوتاه دارد. شکل بلند به بزرگی و کوچکی حروف حساس نیست؛ اما شکل کوتاه حساس است. در انتهای شکل بلند میتوان بهصورت اختیاری یک نقطهویرگول پایانی قرار داد، اما برای شکل کوتاه نباید نقطهویرگول گذاشته شود.
استفاده از شکل کوتاه دستورها درون یادداشتهای چندخطی /* ... */ پشتیبانی نمیشود.
پیام راهنمایی شامل فهرست دستورهای دردسترس mariadb را نمایش میدهد.
اگر آرگومانی به دستور help بدهید، mariadb از آن بهعنوان یک رشته جستجو برای دسترسی به راهنمای سمت سرور استفاده میکند. برای اطلاعات بیشتر، بخش “راهنمای سمت سرور MARIADB (MARIADB SERVER-SIDE HELP)” را ببینید.
مجموعه نویسه (character set) پیشفرض را تغییر داده و عبارت SET NAMES را صادر میکند. این امر امکان میدهد در صورتی که mariadb با قابلیت اتصال مجدد خودکار (auto-reconnect) فعال اجرا شده باشد (که توصیه نمیشود)، مجموعه نویسه بین کلاینت و سرور همگام باقی بماند، زیرا مجموعه نویسه مشخصشده برای اتصالات مجدد استفاده میشود.
ورودی فعلی را پاک میکند. اگر از اجرای عبارتی که در حال وارد کردن آن هستید منصرف شدید، از این دستور استفاده کنید.
اتصال مجدد به سرور. آرگومانهای اختیاری نام پایگاه داده و نام میزبان را میتوان برای مشخص کردن پایگاه داده پیشفرض یا میزبانی که سرور روی آن اجرا میشود ارائه کرد. در صورت عدم ذکر، از مقادیر فعلی استفاده خواهد شد.
رشتهای را که mariadb بهعنوان جداکننده بین عبارات SQL تفسیر میکند تغییر میدهد. مقدار پیشفرض، نویسه نقطهویرگول (“;”) است.
جداکننده میتواند بهعنوان یک آرگومان نقلقولشده یا بدون نقلقول مشخص شود. نقلقول میتواند با استفاده از نویسههای نقلقول تکی (') یا جفتی (") انجام گیرد. برای گنجاندن نقلقول در یک رشته نقلقولشده، یا عبارت را با نوع دیگر نقلقول احاطه کنید یا آن را با یک نویسه اسلش وارو (“\”) اسکیپ نمایید. باید از اسلش وارو در خارج از رشتههای نقلقولشده اجتناب شود زیرا این نویسه، نویسه گریز برای MariaDB است. برای آرگومان بدون نقلقول، جداکننده تا اولین فاصله یا انتهای خط خوانده میشود. برای آرگومان نقلقولشده، جداکننده تا نقلقول متناظر روی خط خوانده میشود.
هنگامی که جداکننده شناساییشده توسط mariadb روی مقداری غیر از پیشفرض “;” تنظیم شود، مواردی از آن نویسه بدون تفسیر به سرور ارسال میشوند. با این حال، خود سرور همچنان “;” را بهعنوان جداکننده عبارات تفسیر کرده و عبارات را مطابق با آن پردازش میکند. این رفتار در سمت سرور برای اجرای چندین عبارت (multiple-statement)، و برای تجزیه بدنه روالها و توابع ذخیرهشده (stored procedures and functions)، تریگرها (triggers) و رویدادها (events) به کار میآید.
ویرایش عبارت ورودی فعلی. mariadb مقادیر متغیرهای محیطی EDITOR و VISUAL را برای تعیین ویرایشگر مورد استفاده بررسی میکند. در صورتی که هیچکدام از متغیرها تنظیم نشده باشند، ویرایشگر پیشفرض vi خواهد بود..sp دستور edit تنها در Unix کار میکند.
عبارت جاری را برای اجرا به سرور ارسال کرده و نتیجه را با قالببندی عمودی نمایش میدهد.
خروج از mariadb.
عبارت جاری را برای اجرا به سرور ارسال میکند.
صفحهبندی خروجی را غیرفعال میکند. توضیحات مربوط به pager را ببینید.
دستور nopager تنها در Unix کار میکند.
کپیکردن خروجی در فایل tee را غیرفعال میکند. توضیحات مربوط به tee را ببینید.
نمایش هشدارها پس از هر عبارت را فعال میکند.
صفحهبندی خروجی را فعال میکند. با استفاده از گزینهٔ --pager هنگام فراخوانی mariadb، مرور یا جستجوی نتایج پرسوجو در حالت تعاملی با برنامههای Unix مانند less، more یا هر برنامهٔ مشابه دیگری امکانپذیر است. اگر مقداری برای این گزینه مشخص نکنید، mariadb مقدار متغیر محیطی PAGER را بررسی کرده و صفحهبند را روی آن تنظیم میکند. قابلیت صفحهبند تنها در حالت تعاملی کار میکند.
صفحهبندی خروجی را میتوان بهصورت تعاملی با دستور pager فعال و با nopager غیرفعال کرد. این دستور یک آرگومان اختیاری میپذیرد؛ در صورت مشخص شدن، برنامهٔ صفحهبندی روی آن تنظیم میشود. بدون هیچ آرگومانی، صفحهبند روی همان صفحهبندی که در خط فرمان تنظیم شده بود، یا اگر هیچ صفحهبندی مشخص نشده باشد روی stdout تنظیم میشود.
صفحهبندی خروجی تنها در Unix کار میکند زیرا از تابع popen() استفاده میکند که در Windows وجود ندارد. برای Windows، میتوان به جای آن از گزینهٔ tee برای ذخیرهٔ خروجی پرسوجو استفاده کرد، اگرچه در برخی موقعیتها برای مرور خروجی بهاندازهٔ pager راحت نیست.
عبارت ورودی جاری را بدون اجرای آن چاپ میکند.
اعلان mariadb را به رشتهٔ دادهشده تغییر میدهد. توالی نویسههای ویژهای که میتوان در اعلان استفاده کرد، در ادامهٔ این بخش شرح داده شدهاند..sp اگر دستور prompt را بدون هیچ آرگومانی مشخص کنید، mariadb اعلان را به مقدار پیشفرض mariadb> بازنشانی میکند.
خروج از mariadb.
هش تکمیل خودکار را که تکمیل نام پایگاههای داده، جدولها و ستونها را هنگام وارد کردن دستورات فعال میکند، بازسازی میکند. (توضیحات مربوط به گزینهٔ --auto-rehash را ببینید.)
فایل نامبرده را میخواند و دستورات موجود در آن را اجرا میکند. در Windows، میتوانید جداکنندههای نام مسیر را بهصورت / یا \\ مشخص کنید.
اطلاعات وضعیتی دربارهٔ اتصال و سروری که استفاده میکنید ارائه میدهد. اگر در حالت --safe-updates اجرا میکنید، status همچنین مقادیر متغیرهای mariadb را که بر پرسوجوهای شما تأثیر میگذارند چاپ میکند.
دستور دادهشده را با استفاده از مفسر دستور پیشفرض شما اجرا میکند.
دستور system تنها در Unix کار میکند.
با استفاده از گزینهٔ --tee هنگام فراخوانی mariadb، میتوانید دستورات و خروجی آنها را ثبت کنید. تمام دادههای نمایشیافته در صفحه به فایلی مشخص الحاق میشوند. این قابلیت برای اهداف اشکالزدایی نیز بسیار مفید است. mariadb پس از هر دستور، درست پیش از چاپ اعلان بعدی، نتایج را در فایل تخلیه میکند. عملکرد tee تنها در حالت تعاملی کار میکند.
میتوانید این ویژگی را بهصورت تعاملی با دستور tee فعال کنید. بدون پارامتر، از فایل قبلی استفاده میشود. فایل tee را میتوان با دستور notee غیرفعال کرد. اجرای دوبارهٔ tee ثبت وقایع را مجدداً فعال میکند.
از db_name بهعنوان پایگاه دادهٔ پیشفرض استفاده میکند.
نمایش هشدارها را پس از هر دستور (در صورت وجود هرگونه هشدار) فعال میکند.
در اینجا چند نکته دربارهٔ دستور pager آورده شده است:
mariadb> pager cat > /tmp/log.txt
همچنین میتوانید هر گزینهای را برای برنامهای که میخواهید به عنوان pager خود استفاده کنید ارسال نمایید:
mariadb> pager less -n -i -S
shell> man less
mariadb> pager less -n -i -S -F -X
mariadb> pager cat | tee /dr1/tmp/res.txt \
| tee /dr2/tmp/res2.txt | less -n -i -S
در این مثال، دستور نتایج پرسوجو را به دو فایل در دو پوشهٔ مختلف در دو سیستمفایل مجزا که روی /dr1 و /dr2 سوار (mount) شدهاند ارسال میکند، و با این حال همچنان نتایج را از طریق less روی صفحه نمایش میدهد.
همچنین میتوانید قابلیتهای tee و pager را با یکدیگر ترکیب کنید. یک فایل tee را فعال کرده و pager را روی less تنظیم کنید؛ در این صورت قادر خواهید بود نتایج را با استفاده از برنامهٔ less مرور کنید و همزمان همه چیز در یک فایل افزوده (append) شود. تفاوت میان tee یونیکس که با دستور pager استفاده میشود و دستور توکار tee در mariadb این است که دستور توکار tee حتی اگر tee یونیکس در دسترس نباشد نیز کار میکند. همچنین tee توکار هر آنچه را که روی صفحه چاپ میشود ثبت میکند، در حالی که tee یونیکسِ به کار رفته با pager تا این اندازه ثبت نمیکند. علاوه بر این، ثبت وقایع در فایل tee میتواند به صورت تعاملی از داخل mariadb روشن و خاموش شود. این ویژگی زمانی مفید است که میخواهید برخی از پرسوجوها را در یک فایل ثبت کنید، اما نه همهٔ آنها را.
دستور prompt اعلان پیشفرض mariadb> را بازپیکربندی میکند. رشتهٔ تعیین اعلان میتواند حاوی توالیهای ویژهٔ زیر باشد.
| گزینه | توضیحات |
| \c | شمارندهای که برای هر گزارهٔ صادر شده افزایش مییابد |
| \D | تاریخ کامل جاری |
| \d | پایگاهداده پیشفرض |
| \h | میزبان کارگزار |
| \l | جداکنندهٔ جاری (جدید در 5.1.12) |
| \m | دقیقه از زمان جاری |
| \n | یک نویسهٔ خط جدید |
| \O | ماه جاری در قالب سهحرفی (Jan، Feb و ...) |
| \o | ماه جاری در قالب عددی |
| \P | am/pm |
| \p | درگاه TCP/IP یا فایل سوکت جاری |
| \R | زمان جاری، در قالب ۲۴ ساعته نظامی (0–23) |
| \r | زمان جاری، زمان استاندارد ۱۲ ساعته (1–12) |
| \S | نقطهویرگول |
| \s | ثانیه از زمان جاری |
| \t | یک نویسهٔ تب |
| \U | نام حساب کاربری کامل شما به صورت user_name@host_name |
| \u | نام کاربری شما |
| \v | نسخهٔ کارگزار |
| \w | روز جاری هفته در قالب سهحرفی (Mon، Tue و ...) |
| \Y | سال جاری، چهار رقمی |
| \y | سال جاری، دو رقمی |
| \_ | یک فاصله |
| \ | یک فاصله (یک فاصله به دنبال بکاسلش میآید) |
| \' | نقلقول تکی |
| \" | نقلقول دوتایی |
| \\ | نویسهٔ عینی بکاسلش “\” |
| \x | x، برای هر “x” که در بالا فهرست نشده است .TE شما میتوانید اعلان را به چندین روش تنظیم کنید: 4 • استفاده از یک متغیر محیطی. میتوانید متغیر محیطی MYSQL_PS1 را روی یک رشته اعلان تنظیم کنید. برای مثال: shell> export MYSQL_PS1="(\u@\h) [\d]> " 4 • استفاده از یک گزینه خط فرمان. میتوانید گزینه --prompt را در خط فرمان برای mariadb تنظیم کنید. برای مثال: shell> mariadb --prompt="(\u@\h) [\d]> " (user@host) [database]> 4 • استفاده از یک فایل گزینهها. میتوانید گزینه prompt را در گروه [mariadb] از هر فایل گزینههای MariaDB مانند /etc/my.cnf یا فایل .my.cnf در دایرکتوری خانگی خود تنظیم کنید. برای مثال: [mariadb] prompt=(\\u@\\h) [\\d]>\\_ در این مثال، توجه داشته باشید که بکاسلشها دو برابر شدهاند. اگر اعلان را با استفاده از گزینه prompt در یک فایل گزینهها تنظیم میکنید، توصیه میشود هنگام استفاده از گزینههای ویژه اعلان، بکاسلشها را دو بار تکرار کنید. بین مجموعه گزینههای مجاز اعلان و مجموعه توالیهای گریز (escape sequences) ویژه که در فایلهای گزینهها شناخته میشوند، تداخل وجود دارد. اگر از بکاسلشهای تکی استفاده کنید، این تداخل ممکن است باعث بروز مشکلاتی شود. برای مثال، \s به جای مقدار ثانیههای جاری، به عنوان فاصله (space) تفسیر میشود. مثال زیر نشان میدهد که چگونه یک اعلان را درون یک فایل گزینهها تعریف کنید تا زمان جاری در قالب HH:MM:SS> گنجانده شود: [mariadb] prompt="\\r:\\m:\\s> " 4 • تنظیم تعاملی اعلان. میتوانید اعلان خود را بهصورت تعاملی با استفاده از دستور prompt (یا \R) تغییر دهید. برای مثال: mariadb> prompt (\u@\h) [\d]>\_ PROMPT set to '(\u@\h) [\d]>\_' (user@host) [database]> (user@host) [database]> prompt Returning to default PROMPT of mariadb> mariadb> mariadb> help search_string اگر آرگومانی به دستور help ارائه دهید، mariadb از آن بهعنوان یک رشتهٔ جستجو برای دسترسی به راهنمای سمت سرور استفاده میکند. عملکرد صحیح این دستور مستلزم آن است که جدولهای راهنما در پایگاهدادهٔ mysql با اطلاعات موضوعات راهنما مقداردهی اولیه شده باشند. اگر هیچ تطابقی برای رشتهٔ جستجو وجود نداشته باشد، جستجو ناموفق خواهد بود: mariadb> help me Nothing found Please try to run 'help contents' for a list of all accessible topics برای مشاهدهٔ فهرستی از دستهبندیهای راهنما، از help contents استفاده کنید: mariadb> help contents You asked for help about help category: "Contents" For more information, type 'help <item>', where <item> is one of the following categories: Account Management Administration Data Definition Data Manipulation Data Types Functions Functions and Modifiers for Use with GROUP BY Geographic Features Language Structure Plugins Storage Engines Stored Routines Table Maintenance Transactions Triggers اگر رشتهٔ جستجو با چندین مورد مطابقت داشته باشد، mariadb فهرستی از موضوعات منطبق را نمایش میدهد: mariadb> help logs Many help items for your request exist. To make a more specific request, please type 'help <item>', where <item> is one of the following topics: SHOW SHOW BINARY LOGS SHOW ENGINE SHOW LOGS از یک موضوع بهعنوان رشتهٔ جستجو استفاده کنید تا مدخل راهنمای مربوط به آن را ببینید: mariadb> help show binary logs Name: 'SHOW BINARY LOGS' Description: Syntax: SHOW BINARY LOGS SHOW MASTER LOGS Lists the binary log files on the server. This statement is used as part of the procedure described in [purge-binary-logs], that shows how to determine which logs can be purged. mariadb> SHOW BINARY LOGS; +---------------+-----------+ | Log_name | File_size | +---------------+-----------+ | binlog.000015 | 724935 | | binlog.000016 | 733481 | +---------------+-----------+ . . . . . . . . . کلاینت mariadb معمولاً به صورت تعاملی استفاده میشود، مانند این: shell> mariadb db_name با این حال، این امکان نیز وجود دارد که دستورات SQL خود را در یک فایل قرار دهید و سپس به mariadb بگویید که ورودی خود را از آن فایل بخواند. برای این کار، یک فایل متنی text_file ایجاد کنید که حاوی دستوراتی باشد که قصد اجرای آنها را دارید. سپس mariadb را همانطور که در اینجا نشان داده شده است فراخوانی کنید: shell> mariadb db_name < text_file اگر دستور USE db_name را به عنوان اولین دستور در فایل قرار دهید، نیازی به مشخص کردن نام پایگاهداده در خط فرمان نخواهد بود: shell> mariadb < text_file اگر در حال حاضر mariadb را اجرا کردهاید، میتوانید یک فایل اسکریپت SQL را با استفاده از دستور source یا دستور \. اجرا کنید: mariadb> source file_name mariadb> \. file_name گاهی اوقات ممکن است بخواهید اسکریپت شما اطلاعات پیشرفت فرآیند را به کاربر نمایش دهد. برای این کار میتوانید دستوراتی شبیه به این را درج کنید: SELECT '<info_to_display>' AS ' '; دستور نشاندادهشده عبارت <info_to_display> را در خروجی نمایش میدهد. همچنین میتوانید mariadb را با گزینهٔ --verbose فراخوانی کنید، که باعث میشود هر دستور پیش از نتیجهای که تولید میکند نمایش داده شود. mariadb نویسههای علامت ترتیب بایت یونیکد (BOM) را در ابتدای فایلهای ورودی نادیده میگیرد. وجود BOM باعث نمیشود که mariadb مجموعه نویسهٔ پیشفرض خود را تغییر دهد. برای این کار، mariadb را با گزینهای مانند --default-character-set=utf8 فراخوانی کنید. "نکات MARIADB (MARIADB TIPS)" این بخش فنونی را شرح میدهد که میتوانند به شما در استفادهٔ مؤثرتر از mariadb کمک کنند. "نمایش عمودی نتایج پرسوجو" برخی از نتایج پرسوجو هنگامی که به جای قالب جدول افقی معمول، به صورت عمودی نمایش داده شوند بسیار خواناتر هستند. پرسوجوها میتوانند با پایان یافتن با \G به جای یک نقطهویرگول (semicolon)، به صورت عمودی نمایش یابند. برای نمونه، مقادیر متنی طولانیتر که شامل خطوط جدید هستند اغلب در خروجی عمودی بسیار سادهتر خوانده میشوند: mariadb> SELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\G *************************** 1. row *************************** msg_nro: 3068 date: 2000-03-01 23:29:50 time_zone: +0200 mail_from: Monty reply: monty@no.spam.com mail_to: "Thimble Smith" <tim@no.spam.com> sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith writes: Thimble> Hi. I think this is a good idea. Is anyone familiar Thimble> with UTF-8 or Unicode? Otherwise, I'll put this on my Thimble> TODO list and see what happens. Yes, please do that. Regards, Monty file: inbox-jani-1 hash: 190402944 1 row in set (0.09 sec) "استفاده از گزینهٔ --safe-updates" . برای افراد تازهکار، یک گزینهٔ راهاندازی مفید --safe-updates (یا --i-am-a-dummy است که اثر یکسانی دارد). این گزینه برای مواردی سودمند است که ممکن است یک دستور DELETE FROM tbl_name صادر کرده باشید اما عبارت WHERE را فراموش کرده باشید. در حالت عادی، چنین دستوری همهٔ سطرهای جدول را حذف میکند. با --safe-updates، تنها میتوانید با مشخص کردن مقادیر کلیدی که سطرها را مشخص میسازند، آنها را حذف کنید. این کار از حوادث ناخواسته جلوگیری میکند. هنگامی که از گزینهٔ --safe-updates استفاده میکنید، mariadb هنگام اتصال به کارساز MariaDB دستور زیر را صادر میکند: SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000; دستور SET اثرات زیر را دارد: 4 • شما مجاز به اجرای یک دستور UPDATE یا DELETE نیستید مگر این که یک قید کلید را در عبارت WHERE مشخص کرده باشید یا عبارت LIMIT (یا هر دو) را ارائه دهید. برای نمونه: UPDATE tbl_name SET not_key_column=val WHERE key_column=val; UPDATE tbl_name SET not_key_column=val LIMIT 1; 4 • کارساز همهٔ نتایج بزرگ SELECT را به 1,000 سطر محدود میکند مگر این که دستور شامل عبارت LIMIT باشد. 4 • کارساز دستورهای چندجدولی SELECT را که احتمالاً نیاز به بررسی بیش از 1,000,000 ترکیب سطر دارند متوقف میکند. برای تعیین محدودیتهایی متفاوت با 1,000 و 1,000,000، میتوانید با استفاده از گزینههای --select-limit و --max-join-size مقادیر پیشفرض را بازنویسی کنید: shell> mariadb --safe-updates --select-limit=500 --max-join-size=10000 اگر کلاینت mariadb هنگام ارسال یک دستور، اتصال خود به سرور را از دست بدهد، بلافاصله و بهصورت خودکار یکبار تلاش میکند تا مجدداً به سرور متصل شده و دستور را دوباره ارسال کند. با این حال، حتی اگر mariadb در برقراری مجدد اتصال موفق شود، اتصال اولیهٔ شما پایان یافته است و تمام اشیاء و تنظیمات نشست قبلی شما از دست میروند: جدولهای موقت، حالت autocommit، و متغیرهای تعریفشده توسط کاربر و متغیرهای نشست. همچنین، هر تراکنش جاری واگردانی (roll back) میشود. این رفتار ممکن است خطرناک باشد، مانند مثال زیر که در آن سرور بدون اطلاع شما بین دستورهای اول و دوم خاموش و دوباره راهاندازی شده است: mariadb> SET @a=1; Query OK, 0 rows affected (0.05 sec) mariadb> INSERT INTO t VALUES(@a); ERROR 2006: MariaDB server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test Query OK, 1 row affected (1.30 sec) mariadb> SELECT * FROM t; +------+ | a | +------+ | NULL | +------+ 1 row in set (0.05 sec) متغیر کاربری @a همراه با اتصال از دست رفته است و پس از برقراری مجدد اتصال، تعریفنشده خواهد بود. اگر مهم است که در صورت قطع اتصال، mariadb با خطا متوقف شود، میتوانید کلاینت mariadb را با گزینهٔ --skip-reconnect اجرا کنید. "کپیرایت و تکثیر (COPYRIGHT)" کپیرایت 2007-2008 MySQL AB، 2008-2010 Sun Microsystems, Inc.، 2010-2025 MariaDB Foundation این مستندات یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همانطور که توسط بنیاد نرمافزارهای آزاد منتشر شده است؛ نسخهٔ ۲ مجوز، بازتوزیع کرده و/یا تغییر دهید. این مستندات با این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به «مجوز عمومی همگانی گنو» مراجعه کنید. شما باید همراه با این برنامه یک نسخه از «مجوز عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، با Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA مکاتبه کرده یا به http://www.gnu.org/licenses مراجعه کنید. "نکات (NOTES)" " 1." 4 Bug#25946 4 http://bugs.mysql.com/bug.php?id=25946 "همچنین ببینید (SEE ALSO)" برای اطلاعات بیشتر، لطفاً به مستندات MariaDB که بهصورت برخط در https://mariadb.com/docs موجود است مراجعه کنید. "نویسندگان (AUTHORS)" MariaDB Foundation (http://www.mariadb.org). |
| 5 March 2025 | MariaDB 11.8 |