Bases de données MyQSL
L'outil bases de données MySQL permet de créer des bases de données MySQL, des utilisateurs et de gérer les droits des utilisateurs sur les bases de données.
cPanel permet un contrôle assez fin des utilisateurs et des droits sur les bases.
Une base peut être gérée par plusieurs utilisateurs différents. De plus il est possible de contrôler quels types de droits un utilisateur possède sur une base de données (select, insert, etc…).
Pour rappel, sur votre compte d'hébergement cPanel vous pouvez créer autant de bases de données que vous le souhaitez, il n'y a pas de limites.

Outils Bases de données MySQL
Permet de créer et gérer des bases de données MySQL ainsi que les utilisateurs et droits
Présentation vidéo
Dans ce tutoriel vidéo, nous voyons comment créer une base de données, un utilisateur et comment attribuer les droits à l'utilisateur sur la base de données. Tout cela est expliqué à l'aide d'un exemple pratique.
Comment utiliser l'outil base de données MySQL ?
Généralement, l'outil de base de données MySQL de cPanel est utilisé pour faire trois choses :
- Créer une base de données, avec le premier formulaire de l'outil
- Créer un utilisateur, avec le deuxième formulaire
- Gérer les droits de l'utilisateur sur la base de données, via les deux listes déroulantes visibles en bas de page
C'est une bonne pratique d'avoir une base de données ainsi qu'un utilisateur MySQL différents pour chaque script/site ou CMS que vous déployez. Vous n'avez pas de limite sur le nombre de bases de données et utilisateurs, profitez-en pour isoler chaque script/site dans sa propre base.
1 script (CMS) = 1 base de données dédiée à ce CMS = 1 utilisateur avec les droits sur la base concernée
Créer une base de données
Le premier formulaire de l'outil permet de créer une base de données. Il n'y a qu'un seul champ à remplir : le nom de la base de données à créer

Le nom de la base de données est toujours préfixé de l'identifiant cPanel.
Il en va de même pour l'utilisateur. Cela sera toujours de la forme : identifiantCpanel_quelquechose.
Créer un utilisateur MySQL
Le deuxième formulaire permet de créer un utilisateur MySQL. Deux éléments sont demandés :
- le nom de l'utilisateur (8 caractères maximum) à créer
- le mot de passe associé à cet utilisateur. Le mot de passe doit être suffisamment complexe
Pour le mot de passe, nous vous recommandons d'utiliser mots de passes alphanumériques longs. Pourquoi ?
Certains scripts PHP sont mal conçus et génèrent des fichiers de configuration avec des guillemets doubles "
(à la place de guillemet simple '
).
Or certains carractères spéciaux ont une signification particulière. Par exemple en PHP le $
sera traité comme un nom de variable s'il est inclus entre deux guillemets doubles "
. Donc dans le cas de la définition
d'un mot de passe, cela génerera une erreur de syntaxe dans le code.
Un autre problème fréquent concerne les mots de passes qui contiennent le sigle @
, :
ou /
. Cela peut entrer en
conflit avec le format DSN souvent utilisé dans des fichiers .env
.
Lorsque ce type d'erreur se produit, cela est assez difficile à trouver car ça ne fait pas partie des choses que l'on pense à vérifier immédiatement. Pour cette arison, nous vous recommandons de générer des mots de passes alphanumérique, mais très long, afin de conserver la sécurité.
Vous pouvez utiliser le générateur de mot de passe de cPanel en demandant uniquement des caractères alphanumériques.

En l'état, l'utilisateur créé ne peut pas faire grand chose car il n'a pas encore les permissions sur la base de données créée précédemment.
Attribution des permissions
cPanel vous laisse gérer assez finement les permissions des utilisateurs sur les bases de données.
Ainsi, un utilisateur peut avoir des droits sur plusieurs bases de données différentes.
Ou inversement, des bases peuvent être gérées par plusieurs utilisateurs différents.
Il est également possible de fournir des accès limités (en lecture simple par exemple) à un utilisateur sur une base de données.
En bas de page dans l'outil base de données mysql de cPanel, il y a un formulaire avec deux menus déroulants. Il faut :
- sélectionner l'utilisateur auquel on souhaite attribuer des permissions
- puis sélectionner base de données sur laquelle on veut lui attribuer des droits
- puis valider

Ensuite, sur l'écran suivant il faut :
- soit cocher finement les droits que vous souhaitez attribuer à l'utilisateur (usage avancé)
- soit cocher la case
TOUS LES PRIVILÈGES
et valider (usage courant)

Si tout se passe bien, un message en vert apparaît indiquant que l'opération s'est bien passée et l'utilisateur apparaît en face de la base de données dans le tableau récapitulatif.

Configuration de scripts
Dans la configuration d'un script PHP, pour un CMS par exemple, plusieurs éléments sont demandés :
Nom de la base de données
: c'est le nom de la base que vous avez créée dans le premier formulaire, le nom de la base est toujours préfixé de votre identifiant cPanelUtilisateur
: l'utilisateur créé dans le deuxième formulaire, également préfixé de votre identifiant cPanelMot de passe
: le mot de passe de l'utilisateur (comme expliqué précédemment, attention aux guillemets doubles pour la définition dans le fichier de configuration PHP, certains caractères contenus dans le mot de passe peuvent être mal interprétés)Adresse de connexion
ouhôte
: localhost (c'est toujours localhost sur nos hébergements)
WordPress wp-config.php
Exemple pour le fichier wp-config.php
de WordPress. Les valeurs sont à remplacer par ce que vous avez créé dans l'outil.
define('DB_NAME', 'utilisateurCpanel_nomDeVotreBase');
define('DB_USER', 'utilisateurCpanel_nomDeVotreUtilisateur');
define('DB_PASSWORD', 'mot de passe');
define('DB_HOST', 'localhost');
Joomla configuration.php
Exemple pour le fichier configuration.php
de Joomla. Les valeurs sont à remplacer par ce que vous avez créé dans l'outil.
public $dbtype = 'mysql';
public $host = 'localhost';
public $user = 'utilisateurCpanel_nomDeVotreUtilisateur';
public $password = 'mot de passe';
public $db = 'utilisateurCpanel_nomDeVotreBase';
Format DSN .env
L'exemple ci-dessous convient à la majorité des Framework PHP qui utilisent les fichiers .env
pour passer les
configurations et utilisent le format DSN :
DATABASE_URL="mysql://NOM_UTILISATEUR:MOT_DE_PASSE@127.0.0.1:3306/db_name?serverVersion=10.6.19-MariaDB"