sql >> Base de Datos >  >> RDS >> Mysql

Cómo cambiar el puerto MySQL/MariaDB predeterminado en Linux

En esta guía, aprenderemos a cambiar el puerto predeterminado que MySQL/MariaDB enlaces de base de datos en CentOS 7 y Debian Distribuciones Linux basadas en Linux. El puerto predeterminado que ejecuta el servidor de base de datos MySQL en Linux y Unix es 3306/TCP .

Para cambiar el MySQL/MariaDB predeterminado puerto de la base de datos en Linux, abra el archivo de configuración del servidor MySQL para editarlo emitiendo el siguiente comando.

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

La búsqueda de la estadística de línea comienza con [mysqld] y coloque la siguiente directiva de puerto en [mysqld] declaración, como se muestra en los extractos del archivo a continuación. Reemplace la variable de puerto según corresponda.

[mysqld] 
port = 12345

Después de agregar el nuevo MySQL/MariaDB puerto, guarde y cierre el archivo de configuración e instale el siguiente paquete en CentOS 7 para aplicar el SELinux requerido reglas para permitir que la base de datos se enlace en el nuevo puerto.

# yum install policycoreutils-python

A continuación, agregue el siguiente SELinux regla para vincular el socket de MySQL en el nuevo puerto y reiniciar el demonio de la base de datos para aplicar los cambios, emitiendo los siguientes comandos. Nuevamente, reemplace la variable de puerto MySQL para que coincida con su propio número de puerto.

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

Para verificar si la configuración del puerto para MySQL/MariaDB el servidor de la base de datos se ha aplicado con éxito, emita netstat o comando ss y filtre los resultados a través del comando grep para identificar fácilmente el nuevo puerto MySQL.

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

También puede mostrar el nuevo puerto MySQL iniciando sesión en la base de datos MySQL con una cuenta raíz y emitiendo el siguiente comando. Sin embargo, tenga en cuenta que todas las conexiones a MySQL en localhost se realizan a través del socket de dominio MySQL unix, no a través del socket TCP. Pero el número de puerto TCP debe especificarse explícitamente en el caso de conexiones remotas de línea de comandos a la base de datos MySQL usando -P bandera.

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

En caso de conexión remota a la base de datos MySQL, el usuario raíz debe configurarse explícitamente para permitir conexiones entrantes desde todas las redes o solo una dirección IP, emitiendo el siguiente comando en 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

Inicie sesión de forma remota en el servidor MySQL a través de un cliente de línea de comandos en el nuevo puerto emitiendo el siguiente comando.

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

Finalmente, una vez que haya cambiado MySQL/MariaDB puerto del servidor de la base de datos, debe actualizar las reglas del Firewall de distribución para permitir conexiones entrantes al nuevo puerto TCP para que los clientes remotos puedan conectarse con éxito a la base de datos.