Ceci est une ancienne révision du document !


Le serveur MySQL

Présentation

MySQL est un système de gestion de base de données (SGBD). Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public que par des professionnels.

Le couple PHP/MySQL est très utilisé par les sites Web et proposé par la majorité des hébergeurs Web comme chez FranceServ Hébergement.

Depuis la version 5, il est possible d'utiliser le PL/SQL afin d'utiliser des procédures et fonctions stockées ainsi que des déclencheurs.

Les moteurs MySQL disponibles

Chez FranceServ Hébergement, deux moteurs MySQL sont disponibles :

  1. MyISAM : moteur par défaut de MySQL. Il est le plus simple à utiliser et à mettre en œuvre. Il utilise plusieurs fichiers qui grandissent au fur et à mesure que la base grossit. Il ne supporte pas les transactions, ni les clefs étrangères.
  2. InnoDB : moteur créé et maintenu par InnoBase. Il gère les transactions et les clefs étrangères (et donc une gestion d'intégrité de table).

Se connecter au serveur MySQL depuis son site

Les informations pour se connecter à la base de données sont disponibles dans l'interface de gestion, section MySQL.

Pour vous connecter à une base de données, il y a quatre paramètres à renseigner :

  1. L'hôte : sql.franceserv.fr
  2. L'identifiant : (exemple : demo)
  3. Le mot de passe : (le mot de passe correspondant à l'identifiant)
  4. Le nom de la base de données : (exemple : demo-db1)

Voici ci-dessous un exemple générique d'accès à une base MySQL via PHP :

<?php
 
// remplacer nomdebase par le nom de votre base SQL
// remplacer password par votre mot de passe
 
$host = 'sql.franceserv.com'; 
$base = 'demo-db1';
$login = 'demo';
$pwd = 'password';
 
// Connexion au serveur
 
$db = mysql_connect($host, $login, $pwd);
 
// On test le retour de la connexion
 
if(!$db)
{
  // on affiche un message d'erreur :
  print "Désolé, connexion impossible à [$host] : ".mysql_error();
  exit;
}
 
// On choisit la bonne base
 
if(!mysql_select_db($base,$db))
{
  // on affiche un message d'erreur :
  print "Désolé, la base de données [$base] n'as pas été trouvé sur le serveur [$host]<br>".mysql_error();
  mysql_close($db);
  exit;
}
 
// On suppose que vous avez une table 'toto' :
 
$sql = "SELECT * FROM toto";
 
// Une requête qui retourne une erreur si vous n'avez pas de table 'toto'
 
if(!mysql_query($sql,$db))
{
  // on affiche un message d'erreur :
  print "erreur sur la requête $sql dans la base [$base] du serveur [$host]<br>".mysql_error();
  mysql_close($db);
  exit;
}
 
// analyse de la requête
// ...
 
// on ferme la connexion à la base
 
mysql_close($db);
 
?>

Se connecter au serveur MySQL depuis l'extérieur

L'accès extérieur au serveur de bases de données MySQL est possible uniquement aux adresses IP autorisées et déclarées dans votre interface de gestion et seulement si vous êtes sur une formule d'hébergement payante. Dans le cas contraire, l'accès depuis l'extérieur est impossible, seul le site Internet y a accès. Ce contrôle d'accès est mis à jour toutes les minutes.

Il est également possible de restreindre l'accès au serveur FTP à votre compte depuis ces mêmes adresses IP.

Ça se passe à l'adresse suivante : https://www.franceserv.fr/admin/protection/ip/

www.franceserv.fr_images_depot_3ffl6cm.jpg

Quota MySQL

Selon le pack acquis avec ou sans personnalisation de celui-ci, le quota des bases de données peut aller de 1 Go à 20 Go.

Lors du dépassement du quota maximum alloué, une alerte est envoyé par mail afin de vous indiquer de corriger la situation en souscrivant plus d'espace ou en réduisant l'espace utilisé. Si la situation est toujours la même après 72 heures, l'ensemble des services sont bloqués.

Pour consulter la taille de vos bases de données connectez vous à votre interface de gestion.

Compte MySQL supplémentaires

Il est possible de créer des comptes MySQL supplémentaires avec un identifiant de son choix avec un mot de passe indépendant de son compte et des privilèges personnalisés sur les bases de données désirées.

Les comptes MySQL supplémentaires sont modifiables à tout moment et sont pris en compte immédiatement et sont accessibles à partir du pack d'hébergement Standard en ajoutant l'option.

Pour accéder directement à ce gestionnaire : https://www.franceserv.fr/admin/multi-sql/

Connexions simultanées

Le nombre de connexions simultanées au serveur de bases de données MySQL correspond au nombre de requêtes s'effectuant à un certain temps donné pour un même utilisateur.

Lorsqu'il y a trop de requêtes s’exécutant en même temps, la limite du nombre de connexions simultanées maximum est alors atteinte, bloquant toutes nouvelles requêtes tant qu'il y a dépassement.

  • Le nombre de connexions simultanées à notre serveur de bases de données MySQL avec le pack Standard est de 30 comme beaucoup d'hébergeurs. Le pack Pro permet d'avoir 120 connexions simultanées.
  • Le nombre de connexions simultanées au serveur MySQL ne correspond pas du tout au nombre de connectés simultanés sur votre site.

Explication

Si vous exécuté une requête SQL simple, soit d'une durée par exemple de 0.1 seconde, ça signifie que vous pouvez effectuer au maximum 10 x 10 = 100 requêtes SQL pendant une seconde. Si votre requête est plus lourde et perdure pendant 0.5 secondes alors vous arrivez à 2 * 10 = 20 requêtes par seconde avant blocage.

Vous avez compris, plus vos requêtes sont légères, plus vous pourrez en faire.

Conséquences

Cette protection permet de bloquer les sites mal développés ou utilisant beaucoup trop ses ressources allouées avant qu'ils pénalisent les autres sites légitimes.

Le but du développement est de réduire le nombre de connexion et leur temps de monopolisation, par page sur le serveur.

Que faut-il faire

  • Fermer vos connexions SQL dans votre code PHP dès que vous ne vous en servez plus.
  • Utiliser des INDEX dans vos tables
  • Éviter les SELECT * lorsque que toutes les propriétés ne sont pas utilisées.
  • Supprimer les modules inutiles de vos CMS
  • et en dernier lieu : migrer sur l'offre d'hébergement Pro ou placer vos bases de données MySQL sur un serveur dédié.

Liste non exhaustives de clients MySQL