Vyhledávání na webu

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.