Résoudre les problèmes
Ancien Drupal, conflit avec la table system sous MySQL 8
Procédure retirée. Ne renommez pas la table
systemet n'ajoutez pas de préfixe isolé en production. Drupal 6 et Drupal 7 ne sont plus supportés, et une modification partielle peut casser des requêtes du noyau ou des modules.
MySQL 8 a fait de SYSTEM un mot réservé. Une erreur 1064 générique ne prouve pas qu'il s'agit de la cause : conservez la requête complète et confirmez qu'elle échoue précisément en faisant référence à system sans échappement.
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds
Drupal 7.76 a ajouté la prise en charge de MySQL 8 et l'échappement des noms réservés. La configuration $db_prefix présentée dans l'ancienne procédure correspondait à Drupal 6 ; Drupal 7 utilise prefix à l'intérieur de $databases['default']['default']. Aucune de ces branches ne doit être republiée comme site définitif.
Récupération sûre
- Isolez l'installation et créez des copies vérifiées des fichiers et de la base de données.
- S'il s'agit d'un Drupal 7 antérieur à 7.76, mettez à jour uniquement une copie isolée vers la dernière version de Drupal 7 pour retrouver une compatibilité en lecture avec MySQL 8.
- S'il s'agit de Drupal 6, utilisez dans l'environnement de récupération une base de données compatible avec cette version ; ne l'exposez pas sur Internet.
- Migrez les données vers une version maintenue de Drupal et validez les utilisateurs, le contenu, les fichiers, les URL et les modules avant de publier.
Consultez l'annonce officielle de la prise en charge de MySQL 8 dans Drupal 7.76. Si une requête directe d'un module continue à ne pas échapper la table, remplacez ou corrigez ce module sur le clone ; ne renommez pas une table centrale pour masquer le symptôme.
Après avoir retrouvé la lecture
Vérifiez les comptages, les utilisateurs, les fichiers et le contenu avant d'exporter vers la destination. Qu'une requête fonctionne de nouveau n'atteste ni de la compatibilité de tous les modules avec MySQL 8 ni de la sécurité de l'ancienne branche.
Conservez les URL qui reçoivent du trafic ou des liens et préparez leurs équivalences sur le nouveau site. S'il existe des requêtes SQL personnalisées, inventoriez leurs différences et remplacez pendant la migration celles qui dépendent d'un ancien comportement.
Cela peut aussi vous aider
- Erreur SQLSTATE 2026 lors de l'installation ou de la mise à jour de PrestaShop Diagnostiquez la connexion SSL à MySQL qui empêche Doctrine d'interroger la version du serveur, sans...
- 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...
- 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...
- Tables corrompues dans une base de données MySQL Confirmez l'erreur et le moteur d'une table avant de la réparer, gardez une sauvegarde et évitez d'a...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.