Diferentes formas de conectar un servidor MySQL remoto usando Ubuntu
- Diferentes formas de conectar un servidor MySQL remoto usando Ubuntu
- Conéctese desde la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para la manipulación de datos
- Conéctese desde la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para iniciar, detener y reiniciar el servidor
Hoy aprenderemos cómo conectar un servidor MySQL remoto usando Ubuntu para manipular datos e iniciar y detener el servidor MySQL.
Diferentes formas de conectar un servidor MySQL remoto usando Ubuntu
- De la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para la manipulación de datos
- Desde la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para detener/iniciar el servidor MySQL
Conéctese desde la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para la manipulación de datos
Conéctese con un usuario personalizado
Aquí, aprenderemos cómo conectar un usuario personalizado que reside en un servidor MySQL remoto. Hemos creado un usuario llamado mehvish
en el servidor MySQL remoto y le hemos otorgado todos los privilegios.
mysql> CREATE USER "mehvish"@"%" IDENTIFIED BY "PASSWORD";
#here % sign shows that this user can be connected remotely
Para conectarnos a un servidor MySQL remoto, debemos tener un mysql-client
instalado en nuestra máquina. En Microsoft Windows 10, el cliente mysql
se instala automáticamente al instalar el servidor MySQL.
Puede seguir este artículo para la instalación de MySQL en la máquina cliente.
Para realizar una conexión remota, necesitamos la dirección IP de una máquina host donde se aloja el servidor MySQL, el nombre de usuario y la contraseña de esa cuenta de usuario en particular. Para recuperar esa dirección IP, usamos el comando ip a
o ifconfig
en Ubuntu, donde reside el servidor MySQL.
Una vez que conocemos la dirección IP, el nombre de usuario y la contraseña, podemos usar el siguiente comando para conectarnos a un servidor MySQL remoto.
# Syntax
# mysql -h hostIP -u username -p password
$ mysql -h 192.168.56.102 -u mehvish -p ******
Lo más probable es que obtenga el siguiente error si intenta establecer una conexión remota por primera vez.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.2.15:3306' (10060)
Para deshacernos de este error, necesitamos modificar el archivo de configuración en el servidor MySQL. Usamos el vim
editor de texto para editar el archivo de configuración, pero puede usar cualquiera de sus opciones.
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
Una vez que se abre el archivo, ubique la dirección de enlace
en la sección [mysqld]
y comente esto como se muestra en la siguiente captura de pantalla. ¿Por qué estamos comentando sobre la opción bind-address
?
El servidor MySQL no permite conexiones remotas debido a su comportamiento predeterminado; solo permite que el localhost
se conecte con el servidor MySQL. Es por eso que comente la dirección de enlace
y permita que una máquina cliente remota establezca una conexión con el servidor MySQL.
Alternativamente, podemos hacer lo siguiente en lugar de comentar la bind_address
.
- Podemos cambiar el valor de
bind-address
de127.0.0.1
a0.0.0.0
. - Si no existe la opción
bind-address
, podemos escribirskip-networking
yskip-bind-address
.
Podemos usar las siguientes opciones para editar y guardar el archivo de configuración usando el editor de texto vim
.
- Presione I para editar el archivo.
- Presione Esc para salir del modo de edición.
- Presione Esc, escriba
:w
y presione Enter para guardar el archivo. - Presione Esc, escriba
:q
y presione Enter para salir del archivo. - Presione Esc, escriba
:wq
, y presione Enter para guardar y salir del archivo en un solo paso. - Presione Esc, escriba
:q!
, y presione Enter para salir del archivo descartando todos los cambios.
Tenemos que reiniciar el servicio de la siguiente manera en la máquina donde está alojado el servidor MySQL.
$ sudo systemctl restart mysql
Ahora, use el siguiente comando nuevamente para conectarse con éxito con la cuenta de usuario mehvish
que se encuentra en el servidor MySQL remoto. Recuerde, estamos usando la siguiente consulta en nuestra máquina local.
$ mysql -h 192.168.56.102 -u mehvish -p ******
Conéctese con un usuario raíz
Antes de sumergirnos en los detalles, verifiquemos si el usuario root
acepta las conexiones remotas. Podemos usar el siguiente comando en Ubuntu, donde está alojado nuestro servidor MySQL.
mysql> SELECT USER, HOST from mysql.user;
Producción:
¿Viste que el usuario root
solo se puede conectar desde localhost
? Tenemos que otorgar acceso remoto usando los siguientes comandos para conectarlo de forma remota.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';
Además, reinicie el servidor MySQL usando el siguiente comando.
$ sudo systemctl restart mysql
Ahora, compruebe si el usuario root
acepta las conexiones remotas o no. Mira, el host del usuario raíz
en la máquina del servidor es %
, lo que muestra que podemos conectarnos de forma remota a la cuenta raíz.
Ahora, podemos conectar al usuario root
desde nuestra máquina local usando la siguiente consulta para leer/escribir datos.
$ mysql -h 192.168.56.102 -u root -p ******
¿Qué pasa si queremos iniciar, detener y reiniciar el servidor MySQL? Para eso, debemos estar en el shell del servidor MySQL, lo que significa que tenemos que conectarnos de manera que abra el shell del servidor en nuestra máquina.
¿Cómo podemos hacer eso? Veamos el siguiente capítulo.
Conéctese desde la máquina cliente Ubuntu 20.04 a la máquina servidor Ubuntu 20.04 para iniciar, detener y reiniciar el servidor
Tenemos que seguir los pasos dados para conectar un servidor remoto usando un shell seguro (también llamado shell de socket seguro).
-
Instale
ssh
para obtener acceso de shell al servidor MySQL, alojado en Ubuntu Machine. -
Ahora, configura el
ssh
. Luego, abra la terminal en su máquina host (máquina local) y escriba las credenciales correctas para conectarse al servidor remoto.Puede usar cualquiera de los siguientes dependiendo de su situación.
2.1. Utilice el comando
ssh remote_host
. Es el más sencillo y se usa cuando tenemos el mismo nombre de usuario en las máquinas remotas y locales.
2.2. Utilicessh nombre_de_usuario_remoto@host_remoto
si el nombre de usuario es diferente en una máquina remota en comparación con la máquina local. Esto le proporcionará acceso al shell de la máquina del servidor. -
Podemos usar los siguientes comandos para funcionar según los requisitos.
Inicie el servidor MySQL:
$ sudo systemctl start mysql
Detener el servidor MySQL:
$ sudo systemctl stop mysql
Reinicie el servidor MySQL:
$ sudo systemctl restart mysql
Comprobar el estado del servidor MySQL:
$ sudo systemctl status mysql
Recuerde, el servidor MySQL se llama mysqld
en su extremo, entonces es posible que deba usar el comando de la siguiente manera.
$ sudo /etc/init.d/mysql restart