Jak zmienić domyślny port MySQL/MariaDB w systemie Linux
W tym przewodniku dowiemy się, jak zmienić domyślny port, z którym łączy się baza danych MySQL/MariaDB w dystrybucjach Linuksa opartych na CentOS 7 i Debianie. Domyślny port, na którym działa serwer bazy danych MySQL w systemie Linux i Unix, to 3306/TCP.
Aby zmienić domyślny port bazy danych MySQL/MariaDB w systemie Linux, otwórz plik konfiguracyjny serwera MySQL do edycji wydając poniższe polecenie.
vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL]
vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
Wyszukaj statystyki linii rozpoczynające się od [mysqld]
i umieść następującą dyrektywę portu w instrukcji [mysqld]
, jak pokazano w poniższych fragmentach plików. Zmień odpowiednio zmienną portu.
[mysqld]
port = 12345
Po dodaniu nowego portu MySQL/MariaDB zapisz i zamknij plik konfiguracyjny i zainstaluj następujący pakiet pod CentOS 7, aby zastosować wymagany SELinux reguły zezwalające bazie danych na powiązanie z nowym portem.
yum install policycoreutils-python
Następnie dodaj poniższą regułę SELinux, aby powiązać gniazdo MySQL na nowym porcie i zrestartuj demona bazy danych, aby zastosować zmiany, wydając poniższe polecenia. Ponownie zamień zmienną portu MySQL, aby pasowała do własnego numeru 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]
Aby sprawdzić, czy konfiguracja portu dla serwera bazy danych MySQL/MariaDB została pomyślnie zastosowana, wydaj polecenie netstat lub ss i przefiltruj wyniki za pomocą polecenia grep, aby łatwo zidentyfikować nowy port MySQL.
ss -tlpn | grep mysql
netstat -tlpn | grep mysql
Możesz także wyświetlić nowy port MySQL, logując się do bazy danych MySQL przy użyciu konta root i wydając poniższe polecenie. Należy jednak pamiętać, że wszystkie połączenia z MySQL na hoście lokalnym są nawiązywane przez gniazdo domeny unixowej MySQL, a nie przez gniazdo TCP. Jednak numer portu TCP musi być jawnie określony w przypadku zdalnych połączeń wiersza poleceń z bazą danych MySQL przy użyciu flagi -P
.
mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';
W przypadku zdalnego połączenia z bazą danych MySQL użytkownik root musi być jawnie skonfigurowany tak, aby zezwalał na połączenia przychodzące ze wszystkich sieci lub tylko z adresu IP, wydając poniższe polecenie w konsoli 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
Zaloguj się zdalnie do serwera MySQL za pomocą klienta wiersza poleceń na nowym porcie, wydając poniższe polecenie.
mysql -h 192.168.1.159 -P 12345 -u root -p
Na koniec, po zmianie portu serwera bazy danych MySQL/MariaDB, musisz zaktualizować reguły zapory sieciowej dystrybucji, aby zezwalać na połączenia przychodzące do nowego portu TCP, aby zdalni klienci mogli pomyślnie łączyć się z bazą danych.