Jak změnit výchozí port MySQL/MariaDB v Linuxu
V této příručce se naučíme, jak změnit výchozí port, který váže databáze MySQL/MariaDB v distribucích Linuxu založených na CentOS 7 a Debian. Výchozí port, na kterém databázový server MySQL běží pod Linuxem a Unixem, je 3306/TCP.
Chcete-li změnit výchozí port databáze MySQL/MariaDB v systému Linux, otevřete konfigurační soubor serveru MySQL pro úpravy zadáním níže uvedeného příkazu.
vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL]
vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
Vyhledejte statistiku řádku začíná [mysqld]
a umístěte následující direktivu portu pod příkaz [mysqld]
, jak je znázorněno na níže uvedených úryvcích. Nahraďte odpovídajícím způsobem proměnnou portu.
[mysqld]
port = 12345
Po přidání nového portu MySQL/MariaDB uložte a zavřete konfigurační soubor a nainstalujte následující balíček pod CentOS 7, abyste mohli použít požadovaný SELinux pravidla, která umožní databázi navázat se na nový port.
yum install policycoreutils-python
Dále přidejte níže uvedené pravidlo SELinux pro navázání soketu MySQL na nový port a restartujte démona databáze, aby se změny uplatnily, a to vydáním následujících příkazů. Znovu nahraďte proměnnou portu MySQL tak, aby odpovídala vašemu vlastnímu číslu portu.
--------------- On CentOS/RHEL ---------------
semanage port -a -t mysqld_port_t -p tcp 12345
systemctl restart mariadb
--------------- On Debian/Ubuntu ---------------
systemctl restart mysql [On Debian/Ubuntu]
Chcete-li ověřit, zda byla konfigurace portu pro databázový server MySQL/MariaDB úspěšně použita, zadejte příkaz netstat nebo ss a filtrujte výsledky pomocí příkazu grep, abyste mohli snadno identifikovat nový port MySQL.
ss -tlpn | grep mysql
netstat -tlpn | grep mysql
Nový port MySQL můžete také zobrazit přihlášením do databáze MySQL pomocí účtu root a zadáním níže uvedeného příkazu. Uvědomte si však, že všechna připojení k MySQL na localhost se uskutečňují prostřednictvím soketu unixové domény MySQL, nikoli prostřednictvím soketu TCP. V případě vzdáleného připojení příkazového řádku k databázi MySQL pomocí příznaku -P
však musí být číslo TCP portu výslovně specifikováno.
mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';
V případě vzdáleného připojení k databázi MySQL musí být uživatel root explicitně nakonfigurován tak, aby umožňoval příchozí připojení ze všech sítí nebo pouze z IP adresy, zadáním níže uvedeného příkazu v konzole MySQL:
mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
Vzdáleně se přihlaste k serveru MySQL prostřednictvím klienta příkazového řádku na novém portu zadáním níže uvedeného příkazu.
mysql -h 192.168.1.159 -P 12345 -u root -p
Nakonec, jakmile změníte port databázového serveru MySQL/MariaDB, musíte aktualizovat pravidla distribuční brány firewall tak, aby umožňovala příchozí připojení k novému portu TCP, aby se vzdálení klienti mohli úspěšně připojit k databázi.