آموزش تغییر پورت MySQL در لینوکس و ویندوز (XAMPP)



پایگاه داده MySQL یکی از محبوب‌ترین و پراستفاده‌ترین سیستم‌های مدیریت دیتابیس در جهان است که به صورت پیش‌فرض از پورت 3306 برای برقراری ارتباط استفاده می‌کند. اگرچه این پورت استاندارد است، اما به همین دلیل اولین هدف ربات‌های مهاجم و اسکنرهای امنیتی نیز می‌باشد. یکی از ساده‌ترین و موثرترین لایه‌های امنیتی، تغییر این پورت پیش‌فرض به یک عدد دیگر است. این کار که به آن “امنیت از طریق گمنامی” (Security through obscurity) می‌گویند، به تنهایی کافی نیست اما می‌تواند از حملات خودکار جلوگیری کند. این راهنما به شما نشان می‌دهد که چگونه پورت MySQL را در سرورهای لینوکسی و همچنین در محیط توسعه محلی XAMPP تغییر دهید.

 

چرا باید پورت MySQL را تغییر دهیم؟

  • کاهش حملات خودکار: اکثر حملات Brute-force توسط ربات‌هایی انجام می‌شود که فقط پورت‌های پیش‌فرض مانند 3306 را اسکن می‌کنند. با تغییر پورت، شما از رادار این ربات‌ها خارج می‌شوید.
  • افزودن یک لایه امنیتی: در کنار فایروال و رمزهای عبور قوی، این کار یک مانع دیگر بر سر راه نفوذگران قرار می‌دهد.
  • اجرای چندین نمونه MySQL: در موارد نادر، ممکن است نیاز داشته باشید چندین سرویس MySQL را روی یک سرور (مثلا یک vps ارزان) اجرا کنید که هر کدام باید پورت منحصر به فرد خود را داشته باشند.

 

آموزش تغییر پورت MySQL در لینوکس (Ubuntu, Debian, AlmaLinux)

فرآیند کلی در تمام توزیع‌های لینوکس یکسان است، اما مسیر فایل پیکربندی اصلی ممکن است متفاوت باشد.

 

گام اول: پیدا کردن فایل پیکربندی صحیح

مهم‌ترین قدم، یافتن فایل کانفیگ درست است. از اتصال به سرور خود از طریق SSH اطمینان حاصل کنید.

  • در AlmaLinux, Rocky Linux, CentOS: فایل اصلی معمولا /etc/my.cnf است.
    sudo nano /etc/my.cnf
  • در Ubuntu, Debian: معماری فایل‌ها متفاوت است. فایل اصلی که باید ویرایش شود در مسیر /etc/mysql/mysql.conf.d/mysqld.cnf قرار دارد.
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

 

گام دوم: ویرایش فایل و افزودن پورت جدید

در فایلی که باز کرده‌اید، به دنبال بخشی بگردید که با [mysqld] شروع می‌شود. در زیر این خط، خط جدیدی برای پورت اضافه کنید. ما برای مثال از پورت 6464 استفاده می‌کنیم. شما می‌توانید هر پورت استفاده نشده دیگری (معمولا بالای 1024) را انتخاب کنید.

[mysqld]
port = 6464

فایل را ذخیره کرده و ببندید (در nano با `Ctrl+X`، سپس `Y` و `Enter`).

 

تغییر پورت در کنترل پنل

گام سوم: ری‌استارت کردن سرویس MySQL

برای اعمال تغییرات، باید سرویس MySQL را با استفاده از `systemctl` (دستور مدرن مدیریت سرویس‌ها) ری‌استارت کنید.

  • در AlmaLinux, Rocky Linux, CentOS:
    sudo systemctl restart mysqld
  • در Ubuntu, Debian:
    sudo systemctl restart mysql

 

گام چهارم: باز کردن پورت جدید در فایروال

اگر فایروال شما فعال است (که باید باشد!)، MySQL دیگر قادر به پذیرش اتصالات نخواهد بود مگر اینکه پورت جدید را باز کنید.

  • برای فایروال UFW (اوبونتو/دبیان):
    sudo ufw allow 6464/tcp
    sudo ufw reload
  • برای فایروال firewalld (آلمالینوکس/راکی):
    sudo firewall-cmd --permanent --add-port=6464/tcp
    sudo firewall-cmd --reload

 

گام پنجم: تأیید تغییرات

برای اطمینان از اینکه MySQL روی پورت جدید در حال اجراست، از دستور `ss` استفاده کنید:

sudo ss -tlpn | grep mysql

خروجی باید چیزی شبیه به این باشد و پورت جدید شما را نشان دهد: 0.0.0.0:6464.

 

آموزش تغییر پورت MySQL در ویندوز (XAMPP)

بسیاری از توسعه‌دهندگان از XAMPP برای محیط توسعه محلی استفاده می‌کنند. تغییر پورت mysql زمپ نیز بسیار ساده است.

  1. کنترل پنل XAMPP را باز کنید.
  2. ابتدا سرویس MySQL را با کلیک روی دکمه Stop متوقف کنید.
  3. روبروی ماژول MySQL، روی دکمه Config کلیک کرده و فایل my.ini را انتخاب کنید تا در ویرایشگر متن باز شود.
  4. در این فایل، باید دو بخش [client] و [mysqld] را پیدا کنید. در هر دو بخش، خط port = 3306 را به پورت جدید خود تغییر دهید (مثلا port = 3307). تغییر پورت در هر دو بخش ضروری است.
  5. فایل my.ini را ذخیره کرده و ببندید.
  6. اکنون سرویس MySQL را مجددا از طریق کنترل پنل XAMPP با کلیک روی Start راه‌اندازی کنید.

 

 

هشدار: فراموش نکنید برنامه‌های خود را آپدیت کنید!

پس از تغییر پورت، تمام اپلیکیشن‌ها و اسکریپت‌هایی که به دیتابیس شما متصل می‌شوند (مانند وردپرس، جوملا، لاراول و…) دیگر نمی‌توانند به آن دسترسی پیدا کنند، مگر اینکه رشته اتصال (Connection String) آن‌ها را به‌روز کنید. برای مثال، در وردپرس باید فایل wp-config.php را ویرایش کرده و آدرس هاست را به همراه پورت جدید مشخص کنید:

define( 'DB_HOST', '127.0.0.1:6464' ); // یا localhost:6464

 

سوالات متداول (FAQ)

آیا تغییر پورت به تنهایی برای امنیت کافی است؟
خیر. این فقط یک لایه از چندین لایه امنیتی است. داشتن رمزهای عبور بسیار قوی، استفاده از فایروال، به‌روز نگه داشتن نرم‌افزارها و محدود کردن دسترسی کاربران، اقدامات امنیتی بسیار مهم‌تری هستند. تغییر پورت فقط به شما کمک می‌کند از دید حملات خودکار پنهان بمانید.
چگونه یک پورت امن و مناسب انتخاب کنم؟
از پورت‌های شناخته شده (Well-Known Ports) که بین 0 تا 1023 هستند، استفاده نکنید. یک عدد تصادفی بین 1024 تا 65535 انتخاب کنید. قبل از انتخاب، با دستور `sudo ss -tlpn` بررسی کنید که پورت مورد نظر شما توسط سرویس دیگری استفاده نمی‌شود.
بعد از تغییر پورت، MySQL اجرا نمی‌شود. چه کار کنم؟
ابتدا فایل لاگ خطا را بررسی کنید (`/var/log/mysql/error.log`). شایع‌ترین دلایل عبارتند از: خطای تایپی در فایل پیکربندی (`my.cnf`)، یا تلاش برای استفاده از پورتی که قبلا توسط سرویس دیگری اشغال شده است.
چگونه از طریق خط فرمان به MySQL با پورت جدید متصل شوم؟

باید از آپشن `-P` (حرف بزرگ P) برای مشخص کردن شماره پورت استفاده کنید:

mysql -u root -p -P 6464