Crear, Configurar y Conectar Laravel 10 con base de datos MySQL con el archivo .env

- Andrés Cruz

In english

Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos Curso y libro Laravel 11 con Tailwind Vue 3, introducción a Jetstream Livewire e Inerta desde cero - 2024.

MySQL es el sistema de gestión de bases por excelencia y muy empleado hoy en día para desarrollar todo tipo de aplicaciones; es una base de datos relacionales (RDBMS) que utiliza el lenguaje SQL (Structured Query Language) para realizar consultas a la misma y poder realizar operaciones sobre nuestros registros; puedes instalarla para los Sistemas Operativos más comunes como Windows, MacOS y Linux.

Una base de datos es una colección de datos que se mantiene organizada en base a archivos; con una base de datos se puede acceder, gestionar y actualizar de manera eficiente mediante consultas a la misma. Esta organización se realiza mediante un sistema de gestión de base de datos (DBMS) que permite a los usuarios crear, leer, actualizar y eliminar datos de forma controlada mediante consultas SQL.

Las bases de datos se utilizan en todo tipo de aplicaciones y en las aplicaciones web no es la diferencia; desde las mismas, podemos realizar todo tipo de colecciones para manejar la organización de nuestros datos.

Las base de datos relacionales almacenan los datos en tablas, que están compuestas por columnas y filas; puedes ver estas tablas como una hoja de cálculo a la cual gestionamos los datos mediante SQL.

En esta entrada veremos cómo podemos conectar un proyecto en Laravel 10 a una base de datos, por ejemplo MySQL; aunque podemos conectarnos a otros Sistemas Gestores de Base de Datos como SQL Server, PostgreSQL, etc; en esta entrada vamos a hacerlo a una base de datos MySQL o su versión libre MariaDB.

Como crear una base de datos en Laragon

Lo primero que tienes que hacer sería abrir tu Laragon y crear una base de datos según los pasos que narramos aquí, ya de aquí estamos partiendo de que ya tienes tu base de datos instalada y así como el recomendado pero no obligatorio sistema gestor de base de datos; en mi caso yo empleo el que me provee Laragon llamado HeidiSQL:

Ruta para crear base de datos en HidiSQL

Luego, indicar el nombre de la base de datos y estamos listos:

HidiSQL dialogo crear base de datos

Con esto tenemos la base de datos ya lista y creada.

Conectar la base de datos en el proyecto de laravel

Ahora, simplemente tenemos que ir al archivo llamado config/database, y buscar las configuraciones para nuestra base de datos, en nuestro caso MySQL:

      'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => NULL,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

Aquí nosotros podemos establecer la conexión con nuestra base de datos; pero si te fijas, tenemos en la raíz del proyecto un archivo llamado .env que es el que podemos emplear en ambiente de desarrollo para hacer las configuraciones siéntete libre de revisar el archivo de configuración de base de datos así como cualquier otro dentro de la carpeta config, pero en la mayoría de los casos encontrarás que para cada vez que se establezca una configuración tenemos el llamado a una función env, que como puede suponer hace juego con el archivo que te mencionaba hace unos momentos.

El archivo y función env

El archivo env es el que tenemos que emplear cuando estamos en ambiente de desarrollo, por lo tanto las configuraciones que agregamos en el mismo son configuraciones en este ambiente.

Por otra parte, cuando asamos a ambiente de producción, debemos prescindir del archivo .env y Laravel de manera automática emplea todas las configuraciones que estén dentro de la carpeta config.

La función env simplemente es una función de ayuda que nos provee Laravel y permite buscar la configuración establecida en el archivo .env dado la key o la clave de la misma como parámetro.

Conexión a la base de datos en Laravel en ambiente de desarrollo (archivo .env)

Entonces siéntete libre de colocar las configuraciones en el archivo database.php pero en mi caso como estamos desarrollando la app, vamos a hacerlo desde el .env el cual como te indicaba es el que deberíamos de emplear al momento de desarrollar; finalmente, quedaría de la siguiente manera:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=larablog
DB_USERNAME=root
DB_PASSWORD=

Y esto seria todo, por supuesto, tienes que ir a tu MySQL y mediante la interfaz gráfica o desde la consola crear la base de datos que estas especificando en las configuraciones del proyecto.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy