🛠️ Solución al Error «TLS/SSL error: invalid directory» en PrestaShop con MariaDB 11.4
Si recientemente su tienda PrestaShop (versiones 1.7.x u 8.x) ha dejado de cargar correctamente tras una actualización del servidor MariaDB, mostrando una página de error o un «Error 500», es muy probable que se deba a una incompatibilidad con la nueva versión del motor de base de datos MariaDB 11.4.
El error específico que suele aparecer en los registros (logs) es:
SQLSTATE[HY000] [2026] TLS/SSL error: invalid directory
¿Por qué ocurre esto? 🧐
Este problema no significa que su base de datos esté rota. Simplemente, las nuevas versiones de los «drivers» de conexión son más estrictas con la configuración de seguridad. PrestaShop, por defecto, configura los certificados SSL como un texto vacío (''), pero la nueva versión espera que, si no se usan, se declaren explícitamente como nulos (null).
A continuación, le explicamos paso a paso cómo solucionarlo desde su panel de control.
1️⃣ Paso 1: Ajustar el archivo parameters.php
Primero, corregiremos cómo PrestaShop se conecta a la base de datos para evitar el error de SSL.
- Ingrese a su cPanel o DirectAdmin.
- Vaya a la sección Archivos y haga clic en Administrador de Archivos.
- Navegue a la carpeta donde está instalada su tienda (usualmente
public_html) y entre en la ruta:app/config/. - Busque el archivo
parameters.php, haga clic derecho sobre él y seleccione Edit (Editar).
Dentro del archivo, debe realizar dos cambios importantes:
- Cambiar
database_hostpara usar la IP local127.0.0.1. - Cambiar
database_portsi está vacío colocar3306. - Agregar o modificar toda la sección «CORRECCIÓN SSL»:
El código debe quedar similar a este ejemplo:
'database_host' => '127.0.0.1',
'database_port' => '3306',
// ... otras configuraciones ...
// --- CORRECCIÓN SSL ---
'database_version' => '10.6.0',
'server_version' => '10.6.0',
'database_ssl' => false,
'database_ssl_key' => null,
'database_ssl_cert' => null,
'database_ssl_ca' => null,
'database_ssl_capath' => null,
'database_ssl_cipher' => null,
// --- FIN CORRECCIÓN ---
Guarde los cambios en el archivo.
2️⃣ Paso 2: Ajustar compatibilidad en doctrine.yml
En algunas versiones, es necesario ayudar al sistema a reconocer la versión de la base de datos y desactivar ciertos parámetros que causan conflictos de negociación.
- En la misma carpeta (
app/config/), busque el archivodoctrine.ymly agregue la versión del servidor debajo de «driver: pdo_mysql«. - Importante: Si encuentra las líneas
1002y1013dentro de la configuración, debe desactivarlas agregando un numeral (#) al inicio de cada una.
Debe quedar así la primera parte de ese archivo:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
server_version: '10.6.12-MariaDB'
host: "%database_host%"
port: "%database_port%"
options:
# 1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"
# 1013: '%env(const:runtime:_PS_ALLOW_MULTI_STATEMENTS_QUERIES_)%'
Guarde los cambios antes de continuar.
Esta es una foto de como deberia quedar el archivo doctrine.yml donde ya agregamos server_version y comentamos las lineas de «options»:

3️⃣ Paso 3: Limpiar la Caché (¡Obligatorio!) 🧹
PrestaShop guarda configuraciones antiguas en su memoria caché. Si no realiza este paso, los cambios anteriores no surtirán efecto y el sitio seguirá mostrando error.
- En el Administrador de Archivos, vaya a la carpeta
var/cache/. - Verá carpetas llamadas
prod(producción) y/odev(desarrollo). - Entre en cada una de ellas y elimine todo el contenido que hay dentro.
Nota: No borre la carpeta «cache» en sí, solo el contenido dentro de las carpetas «prod» y «dev». Al recargar su sitio web, PrestaShop volverá a generar estos archivos automáticamente con la nueva configuración correcta.
¡Listo! Su tienda debería volver a cargar con normalidad. Si el problema persiste, por favor abra un ticket de soporte indicando que ya ha realizado estos pasos.