Com canviar el port predeterminat de MySQL/MariaDB a Linux


En aquesta guia aprendrem a canviar el port predeterminat que enllaça la base de dades MySQL/MariaDB a les distribucions Linux basades en CentOS 7 i Debian. El port predeterminat que el servidor de bases de dades MySQL està executant sota Linux i Unix és 3306/TCP.

Per canviar el port predeterminat de la base de dades MySQL/MariaDB a Linux, obriu el fitxer de configuració del servidor MySQL per editar-lo emetent l'ordre següent.

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

Cerqueu l'estadística de línia que comença amb [mysqld] i col·loqueu la següent directiva de port a la instrucció [mysqld], tal com es mostra als extractes de fitxers següents. Substituïu la variable del port en conseqüència.

[mysqld] 
port = 12345

Després d'haver afegit el nou port MySQL/MariaDB, deseu i tanqueu el fitxer de configuració i instal·leu el paquet següent a CentOS 7 per tal d'aplicar les regles SELinux necessàries per permetre que la base de dades s'uneixi al nou port.

# yum install policycoreutils-python

A continuació, afegiu la regla SELinux següent per vincular el sòcol MySQL al nou port i reinicieu el dimoni de la base de dades per aplicar canvis, emetent les ordres següents. De nou, substituïu la variable de port MySQL perquè coincideixi amb el vostre número de port.

--------------- 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 verificar si la configuració del port per al servidor de bases de dades MySQL/MariaDB s'ha aplicat correctament, emet l'ordre grep per identificar fàcilment el nou port MySQL.

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

També podeu mostrar el nou port MySQL iniciant sessió a la base de dades MySQL amb el compte root i emetre l'ordre següent. Tanmateix, tingueu en compte que totes les connexions a MySQL a localhost es fan mitjançant el sòcol de domini MySQL Unix, no mitjançant el sòcol TCP. Però el número de port TCP s'ha d'especificar explícitament en cas de connexions remotes de línia d'ordres a la base de dades MySQL mitjançant el senyalador -P.

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

En cas de connexió remota a la base de dades MySQL, l'usuari root s'ha de configurar explícitament per permetre connexions entrants de totes les xarxes o només d'una adreça IP, emetent l'ordre següent a la consola 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

Inicieu sessió remotament al servidor MySQL mitjançant un client de línia d'ordres al nou port emetent l'ordre següent.

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

Finalment, un cop hàgiu canviat el port del servidor de bases de dades MySQL/MariaDB, heu d'actualitzar les regles del tallafoc de distribució per permetre connexions entrants al nou port TCP perquè els clients remots es puguin connectar correctament a la base de dades.