Créer une base MySQL
Sur l'hébergement web, une base MySQL se crée dans KeyHelp, avec un utilisateur dédié et des droits limités. Cette séparation évite qu'une application compromise puisse lire les bases d'un autre site.
1. Créer la base et l'utilisateur
Dans KeyHelp, ouvrez la section des bases de données et créez une base pour votre domaine. Le panneau peut préfixer le nom avec votre identifiant ; notez le nom exact, il sera nécessaire dans le code.
Créez ensuite un utilisateur :
- un utilisateur par application ;
- un mot de passe long et unique, généré par un gestionnaire ;
- hôte
localhostpour une connexion depuis le même serveur ; - droits limités à la base concernée, sans
GRANT.
Le panneau affiche l'hôte, le port (3306 par défaut), le nom de la base et l'utilisateur. Conservez ces valeurs hors du dépôt Git.
2. Se connecter depuis PHP
L'extension pdo_mysql est la voie standard. Exemple de connexion avec gestion d'erreur :
<?php
declare(strict_types=1);
$dsn = 'mysql:host=localhost;dbname=VOTRE_BASE;charset=utf8mb4';
$pdo = new PDO($dsn, 'utilisateur', 'mot-de-passe-fort', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]);Utilisez des requêtes préparées pour toute valeur venant d'un utilisateur. Ne construisez jamais une requête par concaténation. Le fichier de configuration qui contient le mot de passe doit rester hors de la racine web.
3. Importer des données
Pour un dump de taille modeste, utilisez l'import de l'interface KeyHelp (ou phpMyAdmin s'il est proposé) : fichier .sql, encodage utf8mb4. Vérifiez que le dump ne contient pas de CREATE DATABASE conflictuel ni de DROP DATABASE.
Pour les gros volumes, l'import via l'interface peut expirer. Découpez le fichier ou utilisez la ligne de commande si le panneau la propose. Contrôlez ensuite :
- le nombre de tables attendu ;
- le moteur
InnoDBet l'encodageutf8mb4; - les index sur les colonnes de recherche ;
- les données réellement présentes, pas seulement la structure.
4. Sauvegarder
Une base sans sauvegarde n'est qu'une panne en attente. Exportez régulièrement depuis l'interface KeyHelp (ou phpMyAdmin s'il est proposé), téléchargez l'archive et conservez-la hors site. Testez la restauration dans une base temporaire : importer le dump, lancer quelques requêtes, comparer les compteurs.
Ne stockez jamais un dump .sql dans la racine web : il serait téléchargeable et contiendrait toutes vos données.
5. Vérifier
- La connexion PHP renvoie une erreur claire si les identifiants sont faux.
SHOW TABLESliste les tables attendues.- L'utilisateur ne peut pas accéder à une autre base.
- Une requête lente ne bloque pas tout le site : surveillez les index et les connexions.
En cas d'erreur Access denied, vérifiez l'hôte (localhost plutôt qu'une adresse de bouclage si le panneau l'exige) et le nom exact de l'utilisateur.
Publicité
Cet article vous a-t-il aidé ?
À lire aussi
- Gérer ses fichiers en FTP et SFTPChoisir le bon protocole, se connecter, respecter l'arborescence et protéger les fichiers sensibles.
- Choisir la version de PHPPHP 8.4 en référence, extensions, compatibilité et changement de version sans casser le site.
- Publier son premier site webPréparer les fichiers, trouver la racine, téléverser, tester et activer HTTPS.