martes, 16 de agosto de 2016

Instalar MySQL server en un servidor linux y configurarlo

Esta guía indica como instalar MySQL server en cualquier servidor basado en la distribución Debian (Ubuntu, Raspi OS, etc)

Primer paso: instalar MySQL server, para esto ejecutamos:

$ sudo apt-get install mysql-server


Posteriormente, para realizar la configuración de MySQL se puede ejecutar el comando:

$ mysql_secure_installation

Seguir los pasos que solicita el script para la configuración de MySQL Server

Segundo paso: necesitamos configurar las opciones para poder conectarnos de forma remota a la base de datos, para esto editamos el archivo mysqld.cnf en las versiones más nuevas:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 

comentamos las siguiente línea:

# bind-address 127.0.0.1

y reiniciamos:

$ sudo systemctl restart mysql.service

En las versiones más antiguas de Ubuntu Server, el archivo a editar es:

$ sudo nano /etc/mysql/my.cnf

y comentamos la siguiente línea, de esta forma:

# bind-address 127.0.0.1

reiniciamos el servicio mysql ejecutando:

$ sudo /etc/init.d/mysql restart

Sí no realizamos estos pasos, al querer ingresar a la base de datos de forma remota, aparecerá un mensaje como el siguiente:

Failed to Connect to MySQL at 192.168.0.xxx:3306 with user TU_USUARIO

Can't connect to MySQL server on '192.168.0.xxx' (111)

Tercer paso: ahora configuramos los usuarios permitidos para hacer gestión remota de la base de datos.

Lo mas probable es que ahora al intentar ingresar te aparezca un error como este:

Failed to Connect to MySQL at 192.168.0.xxx:3306 with user TU_USUARIO

Host 'miDispositivo' is not allowed to connect to this MySQL server

Entonces, en la terminal del servidor ejecutamos:

$ mysql -u root -p


Necesitamos ingresar el password del usuario root para realizar esto. Ya una vez adentro de la consola de mysql, creamos un usuario para gestión y le damos permisos de la siguiente forma:

mysql> CREATE USER 'tuUsuario'@'localhost' IDENTIFIED BY 'tuPassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tuUsuario'@'localhost' WITH GRANT OPTION;
mysql> CREATE USER 'tuUsuario'@'%' IDENTIFIED BY 'tuPassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tuUsuario'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Es muy recomendable crear un usuario diferente de root para la administración de la base de datos, este usuario va a tener todos los permisos de un administrador.

De todas formas, si es necesario dar acceso a root desde cualquier IP, se debe ejecutar los siguientes comando:

mysql> CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'tuPassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Listo, con esto el servidor está listo para ser usado.

No hay comentarios.:

Publicar un comentario