Gestión Conexión administrativa
En la última versión MySQL nos permite diferenciar dos tipos de conexiones. La conexión normal para clientes y aplicaciones y una conexión administrativa sólo para usuario que posean el permiso SUPER. En esta práctica vamos a configurar esta conexión y comprobar que está en funcionamiento. Para ello utilizaremos el laboratorio de la práctica uno con el servidor mysql instalado y en funcionamiento. Para realizar esta práctica me he conectado al servidor por ssh desde el cliente XUbuntu.
Modificación fichero de configuración
Identificar el fichero de configuración mysqld.cnf visto en la práctica anterior y añadir las siguientes líneas. Eneste caso establecemos que solo nos podemos conectar (por conexión administrativa) desde localhost (127.0.0.1) y por el puerto 33061. La última línea nos permitiria crear un listener (proceso) diferenciado para atender las peticiones.
# modificado / añadido práctia gestión conexión administrativa
admin_address = 127.0.0.1
admin_port = 33061
create_admin_listener_thread = off
Reinicio y comprobación del servicio
Una vez hemos modificado la configuración debemos comprobar el fichero de configuración y en caso de no tener errores reiniciar el servicio para que tome los cambios realizados.
profesor@srv-bastionado:~$ sudo mysqld --validate-config
profesor@srv-bastionado:~$ sudo systemctl restart mysql
profesor@srv-bastionado:~$ netstat -plnut
...
tcp 0 0 127.0.0.1:33061 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
...
Si todo ha ido correctamente debemos identificar en netstat que el servidor está a la escuha tanto en el puerto 3306 (conexiones normales) como en el 33061 para las conexiones administrativas.
Realizar conexión administrativa en el servidor
Para realizar la conexión necesitamos crear un usuario con permiso para conectarse por conexión administrativa. En este caso, como aún no hemos explicado ususrios y permisos vamos a crear una cuenta con todos los permisos para ello: 1. Nos conectamos con a mysql con el ususario root (sudo mysql). 2. Creamos el usuario alumno tal y como se indica:
sql> create user 'alumno'@'%' identified by 'alumno';
sql> grant all privileges on *.* to 'alumno'@'%' with grant option;
- Ahora vamos a comprobar que podemos crear una conexión adminstrativa:
shell>mysql --protocol=TCP --port=33061 -u alumno -p
shell> mysql --protocol=TCP --port=33061 -u alumno -p
shell> Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 8.0.26-0ubuntu0.20.04.2 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Si se abre la conexión ya tenemos el servicio en marcha y atendiendo peticiones por el puerto normal 3306 y el administrativo 33061.