> Faqs > ¿Cómo acceder a una base de datos MySQL / MariaDB en un contenedor Docker creado con Laravel Sail?

¿Cómo acceder a una base de datos MySQL / MariaDB en un contenedor Docker creado con Laravel Sail?

Si queremos acceder a una base de datos MySQLo MariaDB que está creada en un contenedor Docker, con Laravel Sail. ¿Cómo se puede hacer?

La idea es acceder usando un software como HediSQL, TablePlus, SequelPro, etc. para poder ver los datos que tenemos en la base de datos y poder administrar MySQL o MariaDB si fuera necesario, por ejemplo restaurar un backup.

Además, encontramos una tesitura especial ¿Qué pasa si tengo otro software sistema gestor de base de datos instalado en mi ordenador, como host? Por ejemplo, en este ordenador tengo MySQL insalado, corriendo en el puerto 3306 y el servidor MariaDB que me crear Sail en un contenedor entiendo que estaría en el mismo puerto, con lo que no podría acceder.

En fin ¿Cómo proceder para el acceso a MySQL / MariaDB, que tenemos en el contenedor Docker creado por Sail y gestionar las posibles incompatibilidades de los puertos?

Respuestas

Aunque en la documentación de Laravel no lo menciona, al menos por el momento, es posible definir que quieres que MySQL o MariaDB esté disponible en un puerto determinado del ordenador host.

Para ello, tienes que editar el archivo .env y colocar esta línea:

FORWARD_DB_PORT=3306

Aunque, si tienes ocupado ya ese puerto 3306 en el ordenador host, porque exista otro sistema gestor de base de datos MySQL o MariaDB instalado y corriendo directamente en la máquina, podrías hacer un forward de otro puerto cualquiera:

FORWARD_DB_PORT=3307

Una vez editado el .env tienes que parar sail y volverlo a arrancar.

Ahora, en HeidiSQL, que es el sodtware de acceso a MySQL que estoy usando ahora, configuro la conexión con los siguientes valores:

  • Tipo de red: MariaDB or MySQL (TCP/IP)
  • Host: 127.0.0.1
  • Usuario: sail
  • Password: password
  • Puerto: 3307
  • Base de datos: laravel
Miguel Angel
1831 85 116 5