Creando un servidor de MySQL local con Docker

Docker es un software de manejo de contenedores que permite exportar tu código junto con la configuración del entorno en donde se encuentra de manera sencilla y liviana sin preocuparse por los cambios que puedan haber en el sistema operativo, mientras que MySQL es la base de datos relacional Open Source más popular.

El objetivo de este POST es explicar el paso a paso de la creación de un contenedor de MySQL de manera local que se pueda acceder desde otras aplicaciones instaladas en la misma máquina. Se usa un computador con Ubuntu 18.04 LTS para el tutorial.

Requerimientos

  • Docker Instalado

Descargando la Imagen desde Docker

El tener la imagen del servidor de MySQL en nuestro computador nos permitirá crear todos los contenedores que queramos de MySQL en nuestra máquina. Podríamos llegar a tener uno por cada proyecto que estemos desarrollando para no mezclar las bases de datos, para tener un orden lógico, o simplemente para que cada una de ellas no sea muy pesada.

Para obtener la imagen simplemente hacemos pull desde el repositorio oficial.

$ sudo docker pull mysql/mysql-server:latest

En este caso estaré trabajando con la última versión de MySQL, sin embargo se puede especificar la versión que deseas utilizar en vez de latest, por ejemplo  5.7, 5.7.24, 5.7.24-1.1.8 .

Ejecutando el contenedor a partir de la imagen

Ya teniendo la imagen estamos listos para ejecutarla. En este caso como queremos que además se pueda ejecutar desde fuera de los contenedores, y posiblemente desde Internet, debemos hacer un forward del puerto para poder acceder.

sudo docker run --name=MyMySQLServer -d -p 6603:3306 mysql/mysql-server:latest

En este caso llamamos al servidor MyMySQLServer en modo daemon (-d hace que se ejecute en el background), y este es el nombre que usaremos de ahora en adelante. En este caso además de ejecutarlo le instruimos a docker que haga un forward del puerto 6603 al 3306 de dentro de docker, por lo que si queremos acceder desde fuera del contenedor lo haremos en el puerto 6603 de la máquina host. 

Si bien el Servidor MySQL ya está corriendo, no sabemos cual es la clave de ROOT de MySQL, como este contenedor la genera de manera automática, simplemente debemos revisar los logs para ver cual es la clave de administrador.

sudo docker logs MyMySQLServer | grep GENERATED

Con docker logs obtenemos los logs de inicio del contenedor con MySQL, mientras que con grep filtramos el contenido para poder ver cual fue la clave de root generada al inicio. En este caso :

[Entrypoint] GENERATED ROOT PASSWORD: IMWop4h#0J0Bk@hLAk@n1uKuSUs

Ahora solo nos falta modificar la clave y permitir conexiones desde fuera del contenedor.

Modificando el servidor MySQL.

Si bien no podemos acceder aún al servidor MySQL desde afuera, si podemos hacerlo desde el mismo contenedor.

sudo docker exec -it MyMySQLServer mysql -uroot -p

Al ejecutar el comando nos preguntará la clave de root que es la que obtuvimos en el punto anterior. Simplemente copia y pega la clave obtenida anteriormente.

Ahora estamos dentro del servidor MySQL del contenedor.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 119
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

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>

Antes que todo, cambiaremos la clave por una más fácil de recordar.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

Recomiendo no usar la clave password :P.

Ahora especificaremos al servidor que el usuario root puede acceder desde cualquier lado. Insisto, en mi caso es un servidor de desarrollo local, no recomiendo hacer esto en producción.

mysql> UPDATE mysql.user set host="%" where user="root";

En este momento tenemos todo para poder acceder desde fuera del contenedor a nuestra base de datos MySQL, lo único que debemos hacer es reiniciar el servicio. Siéntete libre de cerrar la ventana o simplemente escribir exit.

Reiniciando el contenedor.

Si bien podríamos acceder con bash directamente a la máquina, reiniciar el servicio utilizando docker es mucho más sencillo.

sudo docker restart MyMySQLServer

Ahora, para probar si todo está bien, puedes usar tu cliente mysql preferido para poder acceder al servidor. En este caso usaremos la línea de comandos para hacerlo más sencillo.

 mysql -u root -ppassword -h 127.0.0.1 -P 6603

Si realizamos todo de manera correcta podemos acceder al servidor MySQL de manera local en el puerto 6603 usuando el usuario root y password password.

Conclusión

Tener uno o más servidores MySQL de manera  local es bastante sencillo, y lo mejor es que no consumen recursos mientras no se estén ejecutando. Esto es perfecto para los que tenemos un laptop para desarrollar y queremos que la batería dure lo más posible, además de tener un orden lógico y poder diferenciar las bases de datos por proyectos.

 

 

 

 

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

¡MANTENGÁMONOS EN CONTACTO!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

¿Latino América sin efectivo?

Pagos en efectivo en Chile y Latino America

En un mundo en vías de ser Cashless ( sin efectivo ) aún nos queda un largo camino que recorrer.

Hace ya un par de meses que asistí a MoneyConf en Dublín, uno de los congresos Fintech más grandes del mundo, y además de los tópicos obvios; cryptocurrencies, los estándares PSD2, el flujo del dinero, y distintas innovaciones, también se habló mucho sobre una sociedad Cashless – sin efectivo -.

Desde ese entonces quería escribir algo al respecto, pero no sin antes haber realizado algo con que ejemplificarlo. Actualmente en Pago Fácil aceptamos efectivo para pagos online a través de dos Fintech; Multicaja y Pago46, y les trataré de explicar el por qué es muy importante que aún aceptemos pagos en efectivo a pesar de vender online.

Leer más

Mi experiencia emprendiendo en un CoWork

Evento Mujer Emprendedora

Coworking, o trabajar en un CoWork, es una forma de trabajo que permite a profesionales independientes, emprendedores, y pymes de diferentes sectores, compartir un mismo espacio de trabajo, tanto físico como virtual, para desarrollar sus proyectos profesionales de manera independiente, a la vez que fomentan proyectos conjuntos. (Wikipedia).

Durante mi vida profesional he tenido la oportunidad de trabajar en distintos lugares; desde bibliotecas públicas, salas de la universidad o escuela, en cocinas compartidas ( si … de verdad ), en cafeterías, en mi casa, y por supuesto coworks. Hasta ahora mi lugar preferido para trabajar era un lugar llamado Centre Ceramique mientras viví en Maastricht, Holanda. Casi todo el «CORE» de Pago Fácil fue creado entre Centre Ceramique y la cocina compartida del hotel de estudiantes en dónde vivía.

Si bien mi experiencia en Coworks había sido limitada a ir solo por el día, con el equipo de Pago Fácil – Marcelo y yo – después de un par de meses trabajando en mi comedor nuestra productividad ya no era la misma y decidimos buscar un lugar distinto en dónde poder trabajar. La experiencia ha sido bastante buena y hemos podido identificar distintos beneficios que no esperábamos tener.

Actualmente estamos en el CoWork de Launch y la idea es comentar algunos de los beneficios que hemos tenido durante nuestra estadía por acá.

Leer más

Importancia de la Tecnología en las PYMES: Potenciando una cultura de innovación

No es novedad decir que la tecnología está cambiando la forma de hacer las cosas. Ha cambiado la vida particular de las personas, como también la corporativa. Y es que los avances en la materia ayudan a mejorar los tiempos y procesos, alcanzando nuevas metas.

En este camino, la incorporación de la tecnología en una PYME es fundamental para que ésta se mantenga vigente y perdure en el tiempo, puesto que la tecnología le permite a empresas pequeñas y medianas competir codo a codo con empresas grandes, ya que facilitan que sus sistemas sean más eficientes y que se puedan optimizar para mejorar sus operaciones e incluso abordar un público internacional, apoyando una cultura de innovación.

Leer más

¿Qué es un certificado digital, y por que hay que actualizar el de #Transbank?

Transbank Actualización de Certificado

Si estás leyendo este artículo, es muy posible que seas uno de los afortunados que deben de hacer la actualización del certificado de Transbank. Acá te contaré un poco más del por qué lo debes de hacer, y para que sirve.

Un Certificado Digital es el único medio que permite garantizar de manera técnica a una persona o institución a través de Internet. Se utiliza para que las instituciones, en este caso Transbank, puedan ofrecer servicios seguros a través de Internet, y en general tienen un tiempo de validez limitado.

En este caso Transbank utiliza estos certificados para que la conexión de los comercios que venden a través de Internet ( eCommerces ) sea segura, verificando que cada etapa de la comunicación venga desde sus servidores y no un tercero tratando de hacerse pasar por ellos. El certificado que ellos ocupan dura 5 años y caduca el próximo 8 de Mayo.

Lo que tu comercio debe de hacer es simplemente actualizar el certificado que ellos te dan, lo cual no debería de ser complejo ya que lo haces junto con el equipo de soporte y solo lo haces cada 5 años.

Es importante también tener en consideración que hay servicios, como lo es Pago Fácil (Si, es aquí donde parte la semi-publicidad), con lo que no tienes que preocuparte de estas cosas. Los métodos de pago como servicio no es algo nuevo, sin embargo ayudan bastante al aumentar la conversión de tus ventas por Internet, a cobrar de manera remota, y a olvidarte de posibles percances que podrían ocurrir por no saber hacer un cambio de certificado.

De todas maneras, si tienes dudas con el procedimiento a seguir, por qué no escribes acá abajo en los comentarios y veamos si te podemos apoyar o guiar con algo.

 

 

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

¡MANTENGÁMONOS EN CONTACTO!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

Share to...