.## 1. Jaký je výchozí port MySQL?
Číslo portu MySQL a jeho role
MySQL používá port 3306 jako výchozí pro komunikaci. Číslo portu slouží k rozlišení více služeb v síti a je nezbytnou součástí protokolu TCP/IP. Přidělením různých čísel portů jednotlivým službám mohou na stejném serveru současně běžet více procesů.
V případě MySQL se klienti připojují k serveru přes port 3306, aby prováděli operace s databází. Například MySQL Workbench a další databázové nástroje používají tento port pro přístup k databázi.
Proč se používá port 3306?
Port 3306 je standardní port pro MySQL a používá se v mnoha výchozích konfiguracích. Díky použití tohoto portu mohou vývojáři aplikací přistupovat k databázi bez speciální konfigurace, což usnadňuje a zrychluje nasazení. Nicméně, protože může představovat bezpečnostní riziko, je nutná řádná správa.
2. Jak zkontrolovat port MySQL
Kontrola pomocí příkazu
Pro kontrolu portu, který MySQL server aktuálně používá, spusťte následující příkaz:
SHOW VARIABLES LIKE 'port';
Tento příkaz zobrazí, který port server používá. Ve většině případů se jedná o výchozí port 3306, ale může být změněn podle nastavení.
Kontrola v konfiguračním souboru
Port můžete také ověřit kontrolou nastavení v souboru my.cnf (nebo my.ini ve Windows). Tento konfigurační soubor se obvykle nachází v následujících cestách:
- Linux:
/etc/mysql/my.cnf - Windows:
C:\ProgramData\MySQL\MySQL Server\my.ini
Nastavení port v tomto souboru určuje používané číslo portu.
[mysqld]
port=3306
Kontrolou tohoto souboru můžete zjistit aktuálně nakonfigurované číslo portu.
3. Jak změnit port MySQL
Důvody pro změnu portu
Existuje několik důvodů, proč změnit výchozí port MySQL. Zaprvé, jako bezpečnostní opatření – útočníci často cílí na výchozí port 3306, takže jeho změna na jiný port může snížit riziko. Dále, pokud na stejném serveru provozujete více instancí MySQL, každá instance musí používat jiný port.
Kroky pro změnu portu
Pro změnu portu MySQL upravte konfigurační soubor my.cnf. Například pokud chcete změnit číslo portu na 3307, upravte nastavení následovně:
[mysqld]
port=3307
Po uložení konfigurace restartujte MySQL server. V Linuxu můžete provést restart pomocí následujícího příkazu:
sudo systemctl restart mysql
Ve Windows je potřeba restartovat službu MySQL. Nezapomeňte také aktualizovat nastavení firewallu, aby povoloval provoz na novém čísle portu. 
4. Bezpečnostní opatření
Rizika otevření portu
Otevření portu MySQL pro externí přístup zavádí bezpečnostní rizika. Útočníci mohou provádět skenování portů a pokoušet se o neoprávněný přístup cílením na výchozí port 3306. Proto je nezbytné implementovat bezpečnostní opatření na ochranu serveru.
Konfigurace firewallu a omezení přístupu
Nastavením firewallu a povolením připojení pouze z konkrétních IP adres můžete zabránit neoprávněnému přístupu. Například pomocí iptables v Linuxu můžete nakonfigurovat server tak, aby pouze určená IP adresa mohla přistupovat k portu 3306.
sudo iptables -A INPUT -p tcp -s <allowed_ip_address> --dport 3306 -j ACCEPT
Dále se doporučuje použít SSH tunel pro šifrování přístupu k MySQL. Tím zajistíte, že externí spojení nebudou přímo přistupovat k portu, ale projdou zabezpečeným šifrovaným kanálem.
Implementace SSL/TLS
Doporučuje se také implementovat SSL/TLS pro šifrování komunikace mezi MySQL serverem a klienty. To chrání data přenášená po síti a snižuje riziko odposlechu či manipulace.
5. Řešení problémů s portem MySQL
Konflikty portů
Pokud port používaný MySQL koliduje s jinou službou, budete muset port změnit. Například pokud jiná aplikace používá stejný port, MySQL se může nepodařit spustit nebo fungovat správně. V takovém případě postupujte podle dříve popsaných kroků pro změnu čísla portu.
Problémy s externím připojením
Pokud se nemůžete připojit k MySQL z externího hostitele, může být problém spojen s nastavením firewallu nebo konfiguračním souborem MySQL. Pro povolení externích připojení nastavte v konfiguračním souboru MySQL bind-address na 0.0.0.0, aby byly přijímány připojení ze všech adres.
[mysqld]
bind-address = 0.0.0.0
Navíc se ujistěte, že je v nastavení firewallu otevřen příslušný port.
6. Nejlepší postupy pro porty MySQL
Použití vlastního portu
Pokud se rozhodnete nepoužívat výchozí port 3306, nastavení náhodného vysokého čísla portu se považuje za bezpečnostní nejlepší postup. Tento přístup pomáhá snížit vystavení automatizovaným útokům typu port scanning, zejména při povolení externího přístupu.
Monitorování logů
Pravidelné monitorování logů připojení a chybových logů MySQL vám pomáhá včas odhalit bezpečnostní incidenty. Pokud je identifikován abnormální přístup, je důležité reagovat okamžitě. Monitorování logů by mělo být součástí vaší celkové strategie řízení bezpečnosti.
7. Závěr
V tomto článku jsme se zabývali základy portů MySQL a nezbytnými bezpečnostními opatřeními. Přestože je výchozí port 3306 běžně používán, je důležité port změnit, pokud je to nutné, a implementovat bezpečnostní opatření jako konfiguraci firewallu a SSH tunelování. Také jsme probírali běžné kroky řešení problémů s externími připojeními. Pravidelným monitorováním logů a bezpečnostních kontrol můžete provozovat svůj server MySQL bezpečně a spolehlivě.


