آموزش تغییر پورت 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 زمپ نیز بسیار ساده است.
- کنترل پنل XAMPP را باز کنید.
- ابتدا سرویس MySQL را با کلیک روی دکمه Stop متوقف کنید.
- روبروی ماژول MySQL، روی دکمه Config کلیک کرده و فایل
my.ini
را انتخاب کنید تا در ویرایشگر متن باز شود. - در این فایل، باید دو بخش
[client]
و[mysqld]
را پیدا کنید. در هر دو بخش، خطport = 3306
را به پورت جدید خود تغییر دهید (مثلاport = 3307
). تغییر پورت در هر دو بخش ضروری است. - فایل
my.ini
را ذخیره کرده و ببندید. - اکنون سرویس MySQL را مجددا از طریق کنترل پنل XAMPP با کلیک روی Start راهاندازی کنید.
هشدار: فراموش نکنید برنامههای خود را آپدیت کنید!
پس از تغییر پورت، تمام اپلیکیشنها و اسکریپتهایی که به دیتابیس شما متصل میشوند (مانند وردپرس، جوملا، لاراول و…) دیگر نمیتوانند به آن دسترسی پیدا کنند، مگر اینکه رشته اتصال (Connection String) آنها را بهروز کنید. برای مثال، در وردپرس باید فایل wp-config.php
را ویرایش کرده و آدرس هاست را به همراه پورت جدید مشخص کنید:
define( 'DB_HOST', '127.0.0.1:6464' ); // یا localhost:6464
سوالات متداول (FAQ)
آیا تغییر پورت به تنهایی برای امنیت کافی است؟
چگونه یک پورت امن و مناسب انتخاب کنم؟
بعد از تغییر پورت، MySQL اجرا نمیشود. چه کار کنم؟
چگونه از طریق خط فرمان به MySQL با پورت جدید متصل شوم؟
باید از آپشن `-P` (حرف بزرگ P) برای مشخص کردن شماره پورت استفاده کنید:
mysql -u root -p -P 6464
فهرست تیترها