Ricerca nel sito web

Come modificare la porta MySQL/MariaDB predefinita in Linux


In questa guida impareremo come modificare la porta predefinita che il database MySQL/MariaDB collega nelle distribuzioni Linux basate su CentOS 7 e Debian. La porta predefinita eseguita dal server database MySQL in Linux e Unix è 3306/TCP.

Per modificare la porta del database MySQL/MariaDB predefinita in Linux, apri il file di configurazione del server MySQL per la modifica immettendo il comando seguente.

vi /etc/my.cnf.d/server.cnf                   [On CentOS/RHEL]
vi /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu] 

Cerca la riga stat che inizia con [mysqld] e inserisci la seguente direttiva sulla porta nell'istruzione [mysqld], come mostrato negli estratti di file seguenti. Sostituisci la variabile port di conseguenza.

[mysqld] 
port = 12345

Dopo aver aggiunto la nuova porta MySQL/MariaDB, salva e chiudi il file di configurazione e installa il seguente pacchetto sotto CentOS 7 per applicare SELinux richiesto regole per consentire al database di collegarsi alla nuova porta.

yum install policycoreutils-python

Successivamente, aggiungi la regola SELinux riportata di seguito per associare il socket MySQL alla nuova porta e riavvia il demone del database per applicare le modifiche, emettendo i seguenti comandi. Ancora una volta, sostituisci la variabile della porta MySQL in modo che corrisponda al tuo numero di porta.

--------------- 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]  

Per verificare se la configurazione della porta per il server database MySQL/MariaDB è stata applicata con successo, emettere netstat o il comando ss e filtrare i risultati tramite il comando grep per identificare facilmente il nuovo port MySQL.

ss -tlpn | grep mysql
netstat -tlpn | grep mysql

Puoi anche visualizzare la nuova porta MySQL accedendo al database MySQL con l'account root ed emettendo il comando seguente. Tuttavia, tieni presente che tutte le connessioni a MySQL su localhost vengono effettuate tramite il socket di dominio unix MySQL, non tramite il socket TCP. Ma il numero di porta TCP deve essere specificato esplicitamente in caso di connessioni remote da riga di comando al database MySQL utilizzando il flag -P.

mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';

In caso di connessione remota al database MySQL, l'utente root deve essere esplicitamente configurato per consentire le connessioni in entrata da tutte le reti o solo da un indirizzo IP, emettendo il comando seguente nella console 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

Accedi in remoto al server MySQL tramite un client della riga di comando sulla nuova porta immettendo il comando seguente.

mysql -h 192.168.1.159 -P 12345 -u root -p  

Infine, una volta modificata la porta del server database MySQL/MariaDB, è necessario aggiornare le regole del firewall della distribuzione per consentire le connessioni in entrata alla nuova porta TCP in modo che i client remoti possano connettersi correttamente al database.