Résoudre les problèmes
Erreur SQLSTATE 2026 lors de l'installation ou de la mise à jour de PrestaShop
L'avertissement de Doctrine concernant server_version est générique. Dans cette trace, l'information la plus précise est SQLSTATE[HY000] [2026] : la connexion SSL à MySQL échoue avant que Doctrine puisse interroger la version du serveur.
[WARNING] Some commands could not be registered. An exception occurred in ConnectionFactory.php while establishing a connection to figure out your platform version. You can circumvent this by setting a 'server_version' configuration value. For further information, visit: https://github.com/doctrine/DoctrineBundle/issues/673. In AbstractMySQLDriver.php, an exception occurred in driver: SQLSTATE[HY000] [2026] SSL connection error: SSL_CTX_set_default_verify_paths failed. The same error is repeated in Exception.php and PDOConnection.php: SQLSTATE[HY000] [2026] SSL connection error: SSL_CTX_set_default_verify_paths failed.
Ne remplacez pas 1013 par 1016 dans app/config/doctrine.yml : la configuration officielle utilise 1013 pour PDO::MYSQL_ATTR_MULTI_STATEMENTS et cette option ne corrige pas les chemins de certificats signalés par SSL_CTX_set_default_verify_paths failed.
Vérifications
- Confirmez que l'installation web et le processus qui exécute la mise à jour utilisent la même version de PHP et la même extension
pdo_mysql. - Conservez l'exception complète et consultez le journal PHP de la même minute. Recherchez des erreurs concernant OpenSSL, les certificats CA ou un chemin de certificats inexistant.
- Si vous administrez le serveur, vérifiez la configuration SSL du client MySQL et les chemins CA du PHP qui exécute PrestaShop. Ne désactivez pas la vérification TLS pour faire fonctionner la mise à jour.
- Sur un hébergement mutualisé, ouvrez un ticket en indiquant le domaine, l'heure approximative, les versions de PrestaShop et de PHP et l'exception complète. N'incluez pas de mots de passe.
Fixer server_version peut éviter la détection automatique de Doctrine lorsque la connexion fonctionne déjà, mais ne répare pas une connexion qui échoue avec SQLSTATE 2026. Un changement d'implémentation PDO ne doit être testé que si l'assistance confirme qu'il correspond au sélecteur PHP et à l'erreur observée sur ce serveur.
Avant de relancer une mise à jour, créez une sauvegarde vérifiée et suivez la documentation officielle de mise à jour de PrestaShop.
Avant de relancer l'installateur
Vérifiez si la tentative précédente a modifié des tables ou des fichiers. Une connexion échouée peut être la première erreur, mais une mise à jour interrompue à une autre étape pourrait laisser des changements partiels. Conservez le journal et revenez au point cohérent prévu avant de répéter une opération qui écrit des données.
Le PHP du terminal et celui du domaine peuvent utiliser des fichiers de configuration et des magasins CA différents. Indiquez lequel a exécuté le processus ; changer uniquement le sélecteur web ne prouve pas qu'une commande en console utilise la nouvelle configuration.
Cela peut aussi vous aider
- Ancien Drupal, conflit avec la table system sous MySQL 8 Retire le renommage risqué de la table system et oriente la récupération de Drupal 6 ou 7 vers une m...
- Joomla 1.5 et 2.5, compatibilité avec MySQL 8 Traitez l'incompatibilité de Joomla sans support avec MySQL 8 par l'isolement, l'inventaire et une m...
- Erreur « Shop not found at line xxx in file classes/shop/Shop.php » Trouvez l'origine de Shop not found en vérifiant l'URL demandée, shop_url et la portée de PS_SHOP_DE...
- Pourquoi cPanel et phpMyAdmin affichent des tailles différentes pour une base de données Explique pourquoi cPanel et phpMyAdmin calculent des tailles différentes, comment repérer les tables...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.