MYSQLTEST(1) MariaDB Database System MYSQLTEST(1) نام (NAME) mysqltest - اجرای فایل‌های آزمون خودکار برای سرور MariaDB mysqltest_embedded - اجرای فایل‌های آزمون برای سرور توکار (embedded) خلاصه دستور (SYNOPSIS) mysqltest [گزینه‌ها] [name_db] mysqltest_embedded [گزینه‌ها] [name_db] توضیحات (DESCRIPTION) برنامه mysqltest یک مورد آزمون (test case) را روی سرور MariaDB اجرا می‌کند و به صورت اختیاری خروجی حاصل را با یک فایل نتیجه مقایسه می‌نماید. این برنامه ورودی‌های نوشته‌شده به یک زبان آزمون ویژه را می‌خواند. معمولاً mysqltest به جای اجرای مستقیم، از طریق mysql-test-run.pl (یا mariadb-test-run.pl) فراخوانی می‌شود. برنامه mysqltest_embedded مشابه است اما با پشتیبانی از سرور توکار libmariadbd ساخته شده است. ویژگی‌های mysqltest: • امکان ارسال دستورات SQL به سرورهای MariaDB برای اجرا • امکان اجرای دستورات خارجی شل (Shell) • امکان بررسی اینکه آیا نتیجه یک عبارت SQL یا دستور شل با مقدار مورد انتظار مطابقت دارد یا خیر • امکان اتصال به یک یا چند سرور مستقل mariadbd و جابجایی میان اتصالات • امکان اتصال به سرور توکار (libmariadbd)، در صورتی که MariaDB با پشتیبانی از libmariadbd کامپایل شده باشد. (در این حالت، نام فایل اجرایی mysqltest_embedded خواهد بود نه mysqltest.) به‌طور پیش‌فرض، mysqltest مورد آزمون را از ورودی استاندارد (standard input) می‌خواند. برای اجرای mysqltest به این روش، معمولاً آن را به شکل زیر فراخوانی می‌کنید: shell> mysqltest [options] [db_name] < test_file همچنین می‌توانید نام فایل مورد آزمون را با گزینه --test-file=file_name مشخص کنید. مقدار خروج (exit value) از mysqltest در صورت موفقیت برابر 0، در صورت شکست برابر 1، و اگر مورد آزمون نادیده گرفته شود (برای نمونه اگر پس از بررسی برخی پیش‌شرط‌ها تصمیم به عدم اجرای آزمون بگیرد) برابر 62 است. mysqltest از گزینه‌های زیر پشتیبانی می‌کند: • --help, -? نمایش پیام راهنما و خروج. • --basedir=dir_name, -b dir_name دایرکتوری پایه برای آزمون‌ها. • --character-sets-dir=path دایرکتوری محل نصب مجموعه‌های نویسه (character sets). • --compress, -C فشرده‌سازی تمامی اطلاعات ارسالی میان کلاینت و سرور در صورتی که هر دو از فشرده‌سازی پشتیبانی کنند. • --connect-timeout=num می‌توان از این گزینه برای تنظیم پارامتر MYSQL_OPT_CONNECT_TIMEOUT در mysql_options جهت تغییر تعداد ثانیه‌ها پیش از اتمام مهلت زمانی (timeout) تلاش ناموفق برای اتصال استفاده کرد. • --continue-on-error ادامه آزمون حتی در صورت بروز خطا. این گزینه بیشتر هنگام آزمایش یک موتور ذخیره‌سازی برای بررسی اینکه چه دستوراتی از یک فایل آزمون قابل اجرا هستند، یا برای یافتن تمام خطاهای نگارشی در یک فایل آزمون بزرگ تازه ایجادشده کاربرد دارد. • --cursor-protocol استفاده از مکان‌نماها (cursors) برای عبارات آماده‌سازی‌شده (prepared statements). • --database=db_name, -D db_name پایگاه‌داده پیش‌فرض برای استفاده. • --debug[=debug_options], -#[debug_options] ثبت گزارش دیباگ در صورتی که MariaDB با پشتیبانی از دیباگ ساخته شده باشد. مقدار پیش‌فرض debug_options برابر 'd:t:S:i:O,/tmp/mariadb- test.trace' است. • --debug-check چاپ برخی اطلاعات دیباگ هنگام خروج برنامه. • --debug-info چاپ اطلاعات دیباگ و آمار مصرف حافظه و CPU هنگام خروج برنامه. • --host=host_name, -h host_name اتصال به سرور MariaDB روی هاست مشخص‌شده. • --logdir=dir_name دایرکتوری مورد استفاده برای فایل‌های گزارش (log). • --mark-progress نوشتن شماره خط و زمان سپری‌شده در test_file.progress. • --max-connect-retries=num حداکثر تعداد تلاش‌ها برای برقراری اتصال به سرور. • --max-connections=num حداکثر تعداد اتصالات همزمان سرور به ازای هر کلاینت (یعنی به ازای هر آزمون). در صورت عدم تنظیم، حداکثر 128 است. حداقل حد مجاز 8 و حداکثر 5120 است. • --no-defaults عدم خواندن گزینه‌های پیش‌فرض از هیچ فایل تنظیمی. در صورت استفاده، این گزینه باید نخستین گزینه باشد. • --non-blocking-api استفاده از رابط کاربری کلاینت غیرمسدودکننده (non-blocking) برای ارتباط. • --overlay-dir=dir_name دایرکتوری همپوشانی (overlay). • --password[=password], -p[password] گذرواژه مورد استفاده هنگام اتصال به سرور. اگر از شکل کوتاه گزینه (-p) استفاده کنید، نباید فاصله‌ای میان گزینه و گذرواژه وجود داشته باشد. اگر مقدار password پس از گزینه --password یا -p در خط فرمان حذف شود، از شما خواسته می‌شود آن را وارد کنید. • --plugin-dir=dir_name دایرکتوری پلاگین‌های سمت کلاینت. • --port=port_num, -P port_num شماره پورت TCP/IP برای اتصال، یا 0 برای پیش‌فرض بر اساس ترتیب اولویت: my.cnf، متغیر $MYSQL_TCP_PORT، فایل /etc/services، و پیش‌فرض توکار (3306). • --prologue=name گنجاندن محتوای فایل داده‌شده پیش از پردازش محتوای فایل آزمون. فایل گنجانده‌شده باید ساختاری مشابه سایر فایل‌های آزمون mysqltest داشته باشد. این گزینه اثری یکسان با قرار دادن دستور --source file_name به عنوان نخستین خط فایل آزمون دارد. • --protocol={TCP|SOCKET|PIPE|MEMORY} پروتکل اتصال مورد استفاده برای ارتباط با سرور. زمانی کاربرد دارد که سایر پارامترهای اتصال باعث انتخاب پروتکلی غیر از پروتکل مورد نظر شما شوند. • --ps-protocol استفاده از پروتکل عبارت آماده‌سازی‌شده (prepared-statement) برای ارتباط. • --quiet غیرفعال کردن تمامی خروجی‌های عادی. این گزینه مترادف --silent است. • --record, -r ضبط خروجی حاصل از اجرای فایل آزمون درون فایل تعیین‌شده با گزینه --result-file (در صورت تعیین آن گزینه). استفاده از این گزینه بدون استفاده همزمان از --result-file یک خطا محسوب می‌شود. • --result-file=file_name, -R file_name این گزینه فایل نتایج مورد انتظار برای مورد آزمون را مشخص می‌کند. گزینه --result-file به همراه --record، نحوه برخورد mysqltest با نتایج واقعی و مورد انتظار آزمون را تعیین می‌کند: • اگر آزمون هیچ نتیجه‌ای تولید نکند، mysqltest با یک پیام خطا خارج می‌شود، مگر آنکه --result-file داده شده باشد و فایل نام‌برده یک فایل خالی باشد. • در غیر این صورت، اگر --result-file تعیین نشده باشد، mysqltest نتایج آزمون را به خروجی استاندارد می‌فرستد. • با تعیین --result-file اما بدون --record، برنامه mysqltest نتایج مورد انتظار را از فایل مشخص‌شده می‌خواند و آن‌ها را با نتایج واقعی مقایسه می‌کند. اگر نتایج مطابقت نداشته باشند، mysqltest یک فایل .reject در همان دایرکتوری فایل نتیجه می‌نویسد، تفاوت (diff) میان دو فایل را در خروجی چاپ می‌کند و با خطا خارج می‌شود. • با تعیین همزمان --result-file و --record، برنامه mysqltest فایل داده‌شده را با نوشتن نتایج واقعی آزمون در آن به‌روزرسانی می‌کند. • --result-format-version=# نسخه قالب فایل نتیجه برای استفاده. • --server-arg=value, -A value ارسال مقدار به عنوان یک آرگومان به سرور توکار (embedded). برای نمونه، --server-arg=--tmpdir=/tmp یا --server-arg=--core. می‌توان تا 64 آرگومان تعیین کرد. • --server-file=file_name, -F file_name خواندن آرگومان‌های سرور توکار از فایل مشخص‌شده. این فایل باید در هر خط یک آرگومان داشته باشد. • --silent, -s سرکوب تمام خروجی‌های عادی. • --sleep=num, -T num ایجاد وقفه به مدت num ثانیه برای تمام دستورات sleep در فایل مورد آزمون. این گزینه تاثیری بر دستورات real_sleep ندارد. می‌توان از مقدار 0 استفاده کرد که عملاً دستورات sleep را در مورد آزمون غیرفعال می‌کند. • --socket=path, -S path فایل سوکت برای استفاده هنگام اتصال به localhost (که هاست پیش‌فرض است). • --sp-protocol اجرای عبارات DML در قالب یک روتین ذخیره‌شده (stored procedure). برای هر عبارت DML، برنامه mysqltest یک روتین ذخیره‌شده ایجاد و فراخوانی می‌کند که عبارت را به جای اجرای مستقیم، اجرا می‌نماید. • --ssl فعال‌سازی SSL برای اتصال (به صورت خودکار با سایر پرچم‌ها فعال می‌شود). غیرفعال‌سازی با --skip-ssl. • --ssl-ca=name فایل CA در قالب PEM (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-capath=name دایرکتوری CA (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-cert=name گواهی X509 در قالب PEM (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-cipher=name رمزنگار SSL برای استفاده (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-key=name کلید X509 در قالب PEM (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-crl=name فهرست ابطال گواهی (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-crlpath=name مسیر فهرست ابطال گواهی (اسناد OpenSSL بررسی شود، متضمن --ssl است). • --ssl-verify-server-cert اعتبارسنجی «نام عمومی» (Common Name) سرور در گواهی آن در برابر نام هاست استفاده‌شده هنگام اتصال. این گزینه به صورت پیش‌فرض غیرفعال است. • --suite-dir=dir_name دایرکتوری مجموعه آزمون (suite). • --tail-lines=nn تعیین تعداد خطوطی از نتیجه که در صورت شکست آزمون به دلیل شکست یک عبارت SQL باید در خروجی گنجانده شود. مقدار پیش‌فرض 0 است، یعنی هیچ خطی از نتیجه چاپ نمی‌شود. • --test-file=file_name, -x file_name خواندن ورودی آزمون از این فایل. حالت پیش‌فرض خواندن از ورودی استاندارد است. • --timer-file=file_name, -m file_name در صورت ارائه، تعداد میکروثانیه‌های صرف‌شده برای اجرای آزمون در این فایل نوشته می‌شود. این گزینه توسط mariadb-test-run.pl (یا mysql-test-run.pl) برای گزارش‌دهی استفاده می‌شود. • --tmpdir=dir_name, -t dir_name دایرکتوری موقت که فایل‌های سوکت در آن ایجاد می‌شوند. • --user=user_name, -u user_name نام کاربری MariaDB برای استفاده هنگام اتصال به سرور. • --verbose, -v حالت پرگو (Verbose). چاپ اطلاعات بیشتر در مورد عملکرد برنامه. • --version, -V نمایش اطلاعات نسخه و خروج. • --view-protocol هر عبارت SELECT درون یک نما (view) قرار می‌گیرد. حق نشر (COPYRIGHT) Copyright © 2007, 2010, Oracle and/or its affiliates, 2010-2025 MariaDB Foundation این مستندات یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط پروانه عمومی همگانی گنو (GNU GPL) منتشرشده توسط بنیاد نرم‌افزارهای آزاد؛ نسخه 2 پروانه، بازتوزیع کرده یا تغییر دهید. این مستندات به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به پروانه عمومی همگانی گنو مراجعه کنید. شما باید یک نسخه از پروانه عمومی همگانی گنو را همراه با برنامه دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرم‌افزارهای آزاد به آدرس زیر بنویسید یا به پیوند اینترنتی مراجعه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA یا پیوند را مشاهده کنید. همچنین ببینید (SEE ALSO) برای اطلاعات بیشتر، لطفاً به مستندات MariaDB که به صورت آنلاین در دسترس است مراجعه فرمایید: نویسنده (AUTHOR) بنیاد MariaDB (). MariaDB 11.8 5 March 2025 MYSQLTEST(1)