Apparence
Tunnel HTTP
L’hébergement mutualisé (cPanel et similaires) n’offre souvent ni accès SSH ni port de base de données ouvert : la base n’accepte que les connexions venant du serveur web lui-même. Le tunnel HTTP vous y donne tout de même accès : vous déposez un petit script PHP généré par NabuSQL, et NabuSQL envoie le travail à ce script, qui l’exécute sur le serveur.
Le tunnel est disponible pour les connexions MariaDB. Le serveur web doit disposer de PHP 7.4 ou plus récent (PHP 8.x recommandé) avec les extensions mysqli et openssl, présentes chez pratiquement tous les hébergeurs.
Essayez d’abord Remote MySQL
Si votre hébergeur vous permet d’autoriser votre adresse IP dans Remote MySQL de cPanel, une connexion directe est plus simple et plus rapide. Utilisez le tunnel lorsque ce n’est pas possible ou que le port 3306 reste fermé.
Fonctionnement et sécurité
- Un script par connexion. Lorsque vous téléchargez le script, NabuSQL génère une clé aléatoire de 256 bits et l’écrit dans le fichier. La même clé est enregistrée avec la connexion, chiffrée comme vos mots de passe.
- Tout est chiffré. Chaque requête et chaque réponse — nom d’utilisateur et mot de passe de la base, vos requêtes, les résultats — est chiffrée en AES-256-GCM avec cette clé. Utilisez malgré tout une adresse
https://: elle masque aussi le script avec lequel vous communiquez. - Sans clé, aucun accès. Une requête qui n’est pas chiffrée avec la bonne clé reçoit un simple
404 Not Found; le script ne se distingue même pas d’une page inexistante. Une requête enregistrée ne peut pas être rejouée plus tard. - Le script ne conserve aucune donnée. Il ne contient que la clé. Le mot de passe de la base voyage à chaque fois dans la requête chiffrée et n’est jamais écrit sur le serveur.
- Rien ne passe par nous. NabuSQL communique directement avec le script sur votre serveur.
Mise en place
- Créez une nouvelle connexion et choisissez MariaDB.
- Dans l’onglet Général, indiquez la base telle que le script la voit sur le serveur :
- Hôte :
localhost - Port :
3306 - Utilisateur, Mot de passe et Base : les noms complets de cPanel, avec le préfixe du compte (par exemple
moncompte_appetmoncompte_db).
- Hôte :
- Ouvrez l’onglet Tunnel HTTP et cochez Utiliser le tunnel HTTP. Dès lors, cette connexion passe exclusivement par le tunnel ; le tunnel SSH est désactivé.
- Si besoin, réglez les limites PHP.
- Cliquez sur Télécharger le script PHP et enregistrez le fichier (
nabu_xxxxxxxx.php). - Déposez le fichier sur le serveur web avec le gestionnaire de fichiers de l’hébergeur ou par FTP, par exemple dans
public_html. - Dans URL du script, saisissez l’adresse du script, par exemple
https://exemple.fr/nabu_xxxxxxxx.php. - Cliquez sur Vérifier le script. Il affiche la version de PHP, la présence de
mysqlietopenssl, et les limites de l’hébergement. - Cliquez sur Tester la connexion, puis sur Enregistrer.
Ouvert dans un navigateur, le script affiche « Not Found »
C’est voulu. Sans la clé, le script répond à toute requête par un 404.
Limites PHP
Deux réglages PHP peuvent être augmentés depuis le script lui-même. Laissez-les vides pour conserver les valeurs par défaut de l’hébergeur.
| Réglage | Signification |
|---|---|
| max_execution_time | Durée maximale d’une requête, en secondes. 0 supprime la limite PHP |
| memory_limit | Mémoire utilisable par une requête, par exemple 256M. -1 supprime la limite |
Certains hébergeurs n’autorisent pas de valeurs plus élevées. Vérifier le script affiche toujours les valeurs réellement en vigueur et prévient lorsque l’hébergeur a refusé la demande. Même sans limite PHP, le serveur web interrompt une requête au bout de quelques minutes : « sans limite » n’est jamais vraiment sans limite.
post_max_size (la plus grande requête acceptée par le serveur) ne peut pas être réglé depuis un script. Si nécessaire, modifiez-le dans cPanel, sous MultiPHP INI Editor. NabuSQL le lit et adapte la taille de ses requêtes.
Après avoir changé une limite, téléchargez de nouveau le script et remplacez le fichier sur le serveur.
Ce qui fonctionne via le tunnel
Presque tout ce que vous faites avec une connexion directe :
- parcourir les bases, tables, vues, routines, déclencheurs et séquences ;
- la grille de données avec filtres, tri et modification, visionneuse BLOB et statistiques de colonnes ;
- l’éditeur SQL, EXPLAIN et le profileur de requêtes ;
- l’éditeur de structure (colonnes, index, clés, déclencheurs) ;
- sauvegarde, restauration, Exécuter un fichier SQL, Dump vers un fichier SQL et dump d’échantillon ;
- export et import (CSV, Excel et autres) ;
- Data Transfer — depuis et vers une connexion par tunnel, et entre deux d’entre elles ;
- comparaison de structure et de données, recherche de données, maintenance (CHECK, OPTIMIZE, REPAIR, ANALYZE) ;
- propriétés de la base, renommage des bases et des tables, historique des lignes, liste des processus.
Non disponible via le tunnel :
- gestion des utilisateurs et des privilèges — sur un hébergement mutualisé, cela se fait dans cPanel ;
- Task Scheduler et création d’une base à partir de XML/JSON ;
- arrêt d’une requête en cours ;
- l’option transaction dans Exécuter un fichier SQL et Data Transfer : chaque requête par le tunnel est une session distincte de la base, une transaction ne peut donc pas en couvrir plusieurs. Les instructions sont exécutées par lots, chacun validé dès qu’il est terminé.
Ce qui n’est pas disponible est grisé dans les menus.
Résultats volumineux
Une requête ne peut utiliser que la mémoire et le temps autorisés par l’hébergeur ; NabuSQL ne demande donc jamais plus que ce qui tient :
- la grille de données charge une page à la fois, comme toujours ;
- une requête de l’éditeur SQL au résultat très volumineux est coupée à un endroit sûr, et la barre de résultat indique Résultat tronqué — ajoutez un
LIMITou unWHEREplus restrictif ; - sauvegarde, export et Data Transfer lisent les grandes tables par pages plus petites. Une page qui ne tient pas est relue avec une taille divisée par deux ; une sauvegarde n’est jamais incomplète sans le signaler ;
- restauration et import envoient les instructions par lots dimensionnés selon
post_max_sizeetmemory_limitde l’hébergeur.
Mettre à jour le script
Les nouvelles versions de NabuSQL nécessitent parfois un script plus récent. Le message indique alors que le script sur le serveur est obsolète (The tunnel script on the server is outdated). Cliquez de nouveau sur Télécharger le script PHP — la clé reste la même — et remplacez le fichier sur le serveur.
Dépannage
| Message | Que faire |
|---|---|
| Endpoint returned 404 dans Vérifier le script | Adresse erronée, ou le fichier sur le serveur appartient à une autre connexion. Vérifiez l’URL, puis téléchargez de nouveau le script et remplacez le fichier. |
| Access denied for user … | Nom d’utilisateur, mot de passe ou base dans l’onglet Général. Utilisez les noms complets de cPanel avec le préfixe ; l’hôte reste localhost. |
| Access denied … to database 'information_schema' | Une base système a été choisie comme cible. Choisissez votre propre base. |
| Allowed memory size … exhausted | Le memory_limit de l’hébergeur est trop faible pour cette opération. Augmentez-le dans les limites PHP ou dans cPanel. |
| HTTP 500 | Le script a échoué sur le serveur, en général par manque de mémoire ou de temps. Les détails figurent dans le journal d’erreurs de l’hébergeur. |
| HTTP 403 | Un pare-feu de l’hébergeur (par exemple ModSecurity) a bloqué la requête. Demandez à l’hébergeur d’autoriser l’adresse du script. |
| Le script est obsolète | Voir Mettre à jour le script. |
| Not available over the HTTP tunnel yet | Cette fonction n’est pas prise en charge via le tunnel — voir la liste. |
| Le renommage ou la création d’une base échoue | Sous cPanel, l’utilisateur de la base n’a généralement pas le droit de créer des bases. Créez-les dans cPanel. |
Lorsque vous n’utilisez plus le tunnel, supprimez le script du serveur.
