1. Home
  2. Solucion al Error Credenciales incorrectas en Laravel con MariaDB 11.4

Solucion al Error Credenciales incorrectas en Laravel con MariaDB 11.4

🐛 Solución: Error de Login y Datos Corruptos en Laravel (MariaDB 11.4)

Si tu aplicación Laravel ha comenzado a fallar repentinamente, mostrándote errores de credenciales incorrectas al intentar iniciar sesión, o si ves caracteres extraños en tus datos (como \0\0\0), no entres en pánico: tu base de datos está intacta.

Este inconveniente se debe a una incompatibilidad reciente entre la actualización de MariaDB 11.4 y el controlador de base de datos de PHP cuando se usan «Sentencias Preparadas Nativas». A continuación, te explicamos cómo diagnosticarlo y solucionarlo en menos de 5 minutos.

🔍 Síntomas: ¿Cómo saber si este es mi problema?

El problema se manifiesta de formas muy específicas. Si experimentas uno de los siguientes errores, aplica la solución de este tutorial:

  • Error de Login: El sistema dice «Credenciales incorrectas» aunque estés seguro de que tu usuario y contraseña son válidos.
  • Datos Nulos o Extraños: Números (IDs) se muestran como \0\0\0 o campos vacíos.
  • Columnas Desplazadas: Información que debería estar en una columna aparece en otra (ejemplo: el email aparece en la fecha de creación).
  • Error de Permisos (Falso Positivo): Logs que indican SQLSTATE[42000] [1044] Access denied en bases de datos que antes funcionaban bien.

🛠️ La Solución Definitiva

Para corregir esto, debemos instruir a Laravel para que utilice la Emulación de Sentencias Preparadas. Esto restablece la comunicación correcta entre PHP y el servidor de base de datos.

Sigue estos pasos:

  1. Ingresa a tu cPanel o DirectAdmin y abre el Administrador de Archivos.
  2. Navega hasta la carpeta raíz de tu proyecto Laravel.
  3. Entra en la carpeta config y edita el archivo database.php.
  4. Busca el bloque de configuración etiquetado como 'mysql' => [ ... ],.

Debes localizar la sección options dentro de tu configuración de MySQL. Es posible que no la tengas, o que esté vacía. A continuación, te mostramos cómo debe quedar el código. Lo más importante es agregar la línea PDO::ATTR_EMULATE_PREPARES => true.

Copia y reemplaza tu bloque ‘mysql’ con el siguiente código corregido:

        'mysql' => [
            'driver' => 'mysql',
            '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' => '',
            'strict' => true,
            'engine' => null,
            'timezone'  => '-03:00', // Mantenemos tu configuración de zona horaria
            
            // --- FIX BUG MARIADB 11.4 (Soporte PremiumHosting) ---
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
                PDO::ATTR_EMULATE_PREPARES => true, // <--- ESTA LÍNEA ES LA SOLUCIÓN
            ]) : [],
            // -----------------------------------------
        ],

🧹 Paso Final: Limpiar Caché

Laravel suele guardar la configuración en memoria para ir más rápido. Después de guardar los cambios en el archivo, es vital limpiar esta caché para que la solución surta efecto.

Opción A (En la Terminal o via SSH):
Ejecuta el siguiente comando en la carpeta de tu proyecto:

php artisan config:clear

Opción B (Desde el Administrador de Archivos):
Si no usas terminal, navega a la carpeta bootstrap/cache/ y elimina el archivo llamado config.php. Laravel lo volverá a generar automáticamente con la nueva configuración corregida la próxima vez que visites tu sitio.

¡Listo! Intenta iniciar sesión nuevamente. El error debería haber desaparecido y tus datos se visualizarán correctamente.

Updated on 15 de febrero de 2026

Was this article helpful?

Leave a Comment