OVH Guide

Tout sur le SQL Privé

Tout sur le SQL Privé

  • mutualisé
  • sql privé
  • base de données
  • utilisateur
  • base de données
  • suppression
  • changer version
  • my.cnf
  • dupliquer
  • exporter
  • importer
  • sauvegarde
  • restauration

Qu'est ce que l'offre SQL Privé ?

Le service SQL Privé a été conçu pour les clients ayant des besoins importants ou spécifiques pour leurs bases de données. Avec SQL privé, vous disposez de votre propre serveur SQL tout en bénéficiant de la tranquillité d'un hébergement mutualisé géré par OVH.

  • Le serveur SQL Privé nécessite un hébergement mutualisé.

Les avantages du SQL Privé

  • Taille des bases illimitée (dans la limite de l'espace disponible sur le serveur)
  • 100 connexions simultanées de base, augmentable à 200
  • Choix de la version SQL et changement vers une version supérieur possible à tout moment
  • Configuration du serveur MySQL adaptable à vos besoins
  • Possibilité de créer des comptes privilégiés pouvant accéder à plusieurs bases de données

Profitez de l'illimité

Avec votre serveur SQL Privé, vous disposez de ressources réservées à votre seul usage et non de ressources partagées comme c'est le cas sur les serveurs mutualisés.

Par conséquent, quoi que vous fassiez, vous ne risquez pas de gêner les autres utilisateurs. La taille des bases de données n'est pas limitée. Vous pouvez ainsi choisir le meilleur compromis entre le volume de données et les performances de votre serveur SQL.

Choisissez votre version SQL

Vous pouvez choisir la version du serveur SQL dont vous avez besoin au moment de la commande parmi la liste des versions disponibles. Si vous souhaitez évoluer par la suite, vous pourrez le faire d'un simple clic dans votre manager et changer de version SQL vers une version supérieur si disponible.

Sauvegardez vos données automatiquement

Depuis votre manager, vous pouvez automatiser les sauvegardes de vos bases en quelques clics ! Vous pourrez tout aussi facilement les restaurer en cas de problème et ainsi faire vos mises à jour l'esprit tranquille.

Pour cela, il suffit d'activer le service, directement depuis votre manager.

Principe de fonctionnement

Votre SQL Privé dispose de ses propres ressources (processeurs, mémoire vive, ...), attribuées par le système principal. Ainsi, il n'y a aucune gêne entre les utilisateurs.

Activer mon SQL privé offert

Lorsque vous disposez d’un hébergement de type Performance, vous avez le possibilité d’activer gratuitement un serveur SQL privé de 128 Mo de RAM (compris dans l’offre). Pour l’activer, il faut vous rendre dans votre espace client et cliquer sur le nom de votre hébergement performance.

Vous pouvez constater qu'il n'y a actuellement aucun serveur SQL Privé associé à cet hébergement. Il suffit de cliquer sur "Activer" dans un premier temps.

Vous pouvez de cette manière cliquer sur "Valider" et l'activation sera ensuite effective sous quelques minutes.

Modifier l'offre de mon serveur SQL Privé

Pour modifier l'offre de votre serveur SQL Privé, vous devez pour cela cliquer sur le SQL Privé concerné dans la rubrique "Hébergement" (1), puis sur l'onglet "Générales" (2) qui est affiché par défaut. Il suffira ensuite de cliquer sur "Changer la quantité de la RAM" (3) afin d'accéder à la commande de ce basculement.

Vous devez ici choisir la quantité de RAM souhaitée puis cliquer sur le bouton "Suivant". Dans cet exemple, le serveur SQL Privé est actuellement en 128 Mo de RAM, le basculement vers 256 Mo, 512 Mo ou 1024 Mo est donc proposé.

Vous pouvez ici choisir la durée souhaitée entre 3, 6 et 12 mois.

Un report au prorata sera effectué s'il vous reste quelques mois avant l'expiration. Ce prorata sera basé sur la date d'expiration du serveur SQL Privé et non pas sur celle du bon de commande. Il vous suffit ici de prendre connaissance des contrats, de cocher la case "J'accepte les contrats" (1) puis de cliquer sur "Suivant".

La dernière étape résume simplement votre commande, il vous suffit donc de cliquer sur "Valider".

  • Vous serez redirigé vers le bon de commande afin de régler cette modification. Celle-ci sera effective sous quelques heures.

Si vous disposez actuellement d'un serveur SQL Privé gratuit grâce à votre hébergement Performance, la modification de l'offre vous fera perdre sa gratuité.

Créer un utilisateur

  • Pour utiliser un serveur SQL privé, il est nécessaire de créer des utilisateurs qui auront des droits spécifiques pour se connecter à une base de données.

Vous devez pour cela vous rendre dans l'onglet "Utilisateurs et droits" (2) et enfin cliquer sur "Ajouter un utilisateur" (3).

Il vous sera ensuite demandé de renseigner un nom d'utilisateur (1) et un mot de passe (2) puis de cliquer sur "Valider" (3).

Le message suivant apparaît ensuite en haut de votre espace client.

  • Vous pourrez voir dans l'onglet "Utilisateurs et droits" que l'ajout de l'utilisateur est en cours. Cela peut prendre quelques minutes car la synchronisation n'est pas réalisée en temps réel, il faut donc parfois pour voir les informations apparaître, cliquer sur "Actualiser les informations" pour relancer un rafraîchissement des informations (5 à 10 minutes après les informations sont visibles).

Créer une base de données

Pour créer une base de données, vous devez d'abord cliquer sur le nom de votre serveur dans la colonne de gauche (1), puis sur l'onglet "Bases de données" (2) et enfin sur "Ajouter une base de données" (3).

Il faut ensuite renseigner le nom de la base de données (1) en respectant les critères indiqués puis cliquer sur "Valider" (2).

Le message suivant apparaît ensuite en haut de votre espace client.

  • Cela peut prendre quelques minutes car la synchronisation n'est pas réalisée en temps réel, il faut donc parfois pour voir les informations apparaître, cliquer sur "Actualiser les informations" pour relancer un rafraîchissement des informations (5 à 10 minutes après les informations sont visibles).

Supprimer une base de données

Pour supprimer une base de données sur votre serveur SQL Privé, vous devez vous rendre sur l'onglet "Bases de données" (2) puis cliquer sur la roue dentée à droite de votre base et enfin sur "Supprimer la base" (3).

Pour supprimer une base de données sur un serveur SQL Privé, il n'y a pas de vérification sur le contenu de la base. Celle-ci sera donc supprimée même si des données y sont encore enregistrées, il est donc recommandé de réaliser une sauvegarde de votre côté avant toute suppression. Il vous suffit ensuite de valider l'opération.

  • Le message suivant apparaîtra ensuite et la base sera ainsi supprimée. Cela peut prendre quelques minutes car la synchronisation n'est pas réalisée en temps réel, il faut donc parfois pour voir les informations apparaître, cliquer sur "Actualiser les informations" pour relancer un rafraîchissement des informations (5 à 10 minutes après les informations sont visibles).

Gestion des droits utilisateurs

Pour gérer les droits de chaque utilisateurs, cliquez sur l'onglet "Utilisateurs et droits".

Il suffit ensuite de cliquer sur la roue dentée à droite de l'utilisateur concernée puis de cliquer sur "Gérer les droits".

Vous retrouverez dans la colonne de gauche la liste des base de données présentes sur votre serveur SQL Privé.

Les différents droits possibles sont :

  • Aucun : Aucun droit sur la base choisie
  • Lecture : Lecture seule (L'utilisateur peut simplement réaliser des requêtes de type SELECT)
  • Lecture / Écriture : Lecture / Écriture (L'utilisateur peut réaliser des requêtes de type SELECT, INSERT, UPDATE, DELETE)
  • Administrateur : Droits Administrateur (L'utilisateur peut réaliser des requêtes de type SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP)

La modification des droits d'un utilisateur peut prendre quelques minutes.

Se connecter à une base de données MySQL du SQL Privé

Pour vous connecter à votre base de données, vous trouverez le lien d'accès dans le paragraphe "Administration de la base de données".

Vous arrivez de cette manière sur la page de connexion de phpMyAdmin.

  1. Serveur : Vous devez renseigner le nom d'hôte de votre serveur comme indiqué ci-dessous dans le cadre vert.

Pour les serveurs "Legacy", vous devrez renseigner l'adresse IP de votre serveur comme indiqué également dans le cadre "Connexion SQL".

  1. Utilisateur : Il s'agit ici du nom d'utilisateur défini dans l'onglet "Utilisateurs et droits" de votre espace client.

  2. Mot de passe : Renseignez le mot de passe associée à l'utilisateur concernée.

  3. Port : Il s'agit ici du port que vous pouvez récupérer dans l'onglet "Générales" de votre espace client comme indiqué ci-dessous dans le cadre vert.

Vous retrouverez le nom du serveur à renseigner (nom d'hôte) et le port dans votre espace client dans le cadre "Connexion SQL".

Si la connexion aboutie, la page phpMyAdmin apparaîtra.

En cas d'erreur 1045

Si le message d'erreur suivant apparaît (#1045), cela signifie que les identifiants ne sont pas corrects. Il faut donc vérifier votre login ou votre mot de passe par exemple.

En cas d'erreur 2005

En cas d'erreur #2005, il est conseillé de vérifier le nom du serveur et si celui-ci est bien fonctionnel.

Sauvegardes automatiques

  • Sur les serveurs SQL Privé Docker, les sauvegardes sont automatiques.

De ce fait, vos bases sont sauvegardées chaque jour, et disponibles pendant 30 jours glissants.

Réaliser une sauvegarde d'une base de données

Pour réaliser une sauvegarde de votre base de données, rendez-vous dans l'onglet "Bases de données", puis vous cliquez sur la roue dentée à droite de votre base, puis sur "Sauvegarder maintenant".

Cette sauvegarde sera ensuite effective sous quelques minutes. Les sauvegardes sont conservées pendant 30 jours, après ce délai, elles seront automatiquement supprimées.

Planifier une sauvegarde d'une base de données (Serveur Legacy uniquement)

Pour planifier la sauvegarde automatique d'une base de données sur votre serveur SQL Privé, rendez-vous dans l'onglet "Bases de données", puis vous cliquez sur la roue dentée à droite de votre base, puis sur "Planifier des sauvegardes".

Vous pouvez ensuite choisir d'activer la notification par email.

L'étape 2 vous permet de définir la périodicité de cette sauvegarde.

La dernière étape permet simplement de vérifier les paramètres définis pour cette sauvegarde planifiée.

Vous pouvez consulter la liste des sauvegardes planifiées dans l'onglet "Sauvegardes planifiées".

Télécharger une sauvegarde

Pour télécharger une sauvegarde, vous devez cliquez sur le chiffre apparaissant dans la colonne "Sauvegardes". Ce chiffre correspond au nombre de sauvegarde disponible pour votre base de données.

La liste des sauvegardes disponibles apparaît, vous pouvez cliquer sur l'icône encadrée en rouge pour télécharger cette sauvegarde.

Restaurer une sauvegarde

Pour restaurer une sauvegarde, vous devez cliquez sur le chiffre apparaissant dans la colonne "Sauvegardes". Ce chiffre correspond au nombre de sauvegarde disponible pour votre base de données.

La liste des sauvegardes disponibles apparaît, vous pouvez cliquer sur l'icône encadrée en rouge pour restaurer cette sauvegarde.

Cette restauration peut prendre de quelques minutes, celle-ci peut prendre plus ou moins longtemps en fonction de la taille de la sauvegarde choisie.

Exporter une base de données MySQL depuis phpMyAdmin

Pour exporter votre base de données directement depuis phpMyAdmin, il est nécessaire de vous y connecter au préalable, vous pouvez pour cela vous aider du paragraphe ci-dessus.

Cliquez sur le nom de la base de données que vous souhaitez exporter et ensuite sur le bouton "Exporter".

Vous avez deux modes d'exportation possibles. Si vous n'avez pas de besoin spécifique, nous vous conseillons d'utiliser le mode rapide au format SQL.

Importer une base de données MySQL depuis phpMyAdmin

Pour importer votre base de données directement depuis phpMyAdmin, il est nécessaire de vous y connecter au préalable, vous pouvez pour cela vous aider du paragraphe ci-dessus.

Une fois connecté sur PhpMyAdmin, sélectionnez votre base de données en cliquant sur son nom.

Cliquez ensuite sur "Importer".

Sélectionnez votre fichier de sauvegarde en cliquant sur "Parcourir" (attention, le fichier ne peut pas dépasser 128 Mo).

Cliquez sur "Exécuter" pour lancer l'importation.

Comment exporter ma base MySQL en ligne de commande ?

  • Export (Docker) :
mysqldump --host=serveur --user=nom_de_la_base --port=Port --password=mot_de_passe nom_de_la_base > nom_de_la_base.sql
  • Export (Legacy) :
mysqldump --host=serveur --user=nom_de_la_base --password=mot_de_passe nom_de_la_base > nom_de_la_base.sql

Comment importer ma base MySQL en ligne de commande ?

  • Import (Docker) :
cat nom_de_la_base.sql | mysql --host=serveur --user=nom_de_la_base --port=Port --password=mot_de_passe nom_de_la_base
  • Import (Legacy) :
cat nom_de_la_base.sql | mysql --host=serveur --user=nom_de_la_base --password=mot_de_passe nom_de_la_base

Comment exporter ma base MySQL depuis un fichier PHP ?

  • Export (Docker) :
<?php
echo "Votre base est en cours de sauvegarde.......";
system("mysqldump --host=serveur --user=nom_de_la_base --port=Port --password=mot_de_passe nom_de_la_base > nom_de_la_base.sql");
echo "C'est fini. Vous pouvez récupérer la base par FTP";
?>
  • Export (Legacy) :
<?php
echo "Votre base est en cours de sauvegarde.......";
system("mysqldump --host=serveur --user=nom_de_la_base --password=mot_de_passe nom_de_la_base > nom_de_la_base.sql");
echo "C'est fini. Vous pouvez récupérer la base par FTP";
?>

Comment importer ma base MySQL depuis un fichier PHP ?

  • Import (Docker) :
<?php
echo "Votre base est en cours de restauration.......
<br>";
system("cat nom_de_la_base.sql | mysql --host=serveur --user=nom_de_la_base --port=Port --password=mot_de_passe nom_de_la_base");
echo "C'est fini. Votre base est en place sur cet hébergement.";
?>
  • Import (Legacy) :
<?php
echo "Votre base est en cours de restauration.......
<br>";
system("cat nom_de_la_base.sql | mysql --host=serveur --user=nom_de_la_base --password=mot_de_passe nom_de_la_base");
echo "C'est fini. Votre base est en place sur cet hébergement.";
?>

Serveur de type Legacy

Rendez-vous sur ce lien pour vous aider à retrouver le type de serveur SQL Privé.

Connexion FTP sur un SQL Privé

  • Net2Ftp

Pour vous connecter en FTP sur votre serveur SQL Privé de type "Legacy" via Net2FTP, nous vous invitons à suivre le lien suivant :

http://sqlprive.ovh.net/ftp

Dans le champ nom d'utilisateur, il faut renseigner le nom du serveur SQL privé. Ensuite, le mot de passe "FTP" du SQL Privé. Si vous laissez répertoire de départ vide, vous arriverez à la racine de l'espace FTP.

  • Connexion via client FTP (Filezilla)

Vous devez indiquer en nom d'hôte sqlprive.ovh.net, en nom d'utilisateur la référence de votre SQL Privé sous la forme sqlprive-XXXX-0XX, puis le mot de passe.

Modifier le mot de passe FTP

Vous pouvez modifier le mot de passe FTP de votre serveur SQL Privé "Legacy" dans l'onglet "Générales" en cliquant sur "Changer le mot de passe".

Vous devrez ensuite redémarrer votre serveur, la modification sera donc effective sous quelques minutes.

Configurer mon fichier my.cnf

Pour modifier le fichier my.cnf sur les anciens serveurs SQL Privé de type "Legacy", vous devez vous connecter en FTP puis éditer le fichier concerné.

Une fois les modifications effectuées, enregistrez le fichier puis redémarrez-le.

Pour le redémarrer, il faudra d'abord cliquer sur "Arrêter" (cela peut prendre quelques secondes), puis "Démarrer" le serveur.

Serveur de type Docker

Vous devez pour cela vous rendre dans l'onglet "Configuration". Vous trouverez dans le cadre "Configuration générale de MySql" la configuration actuelle définie dans le fichier my.cnf. Vous pouvez modifier celle-ci en cliquant sur "Editer".

Effectuez les modifications nécessaires puis cliquez sur "Confirmer".

Attention !

Toute modification nécessite un redémarrage du serveur.

Accès aux logs du serveur

Qu'est ce que les Slow Logs ?

Ces logs contiennent les requêtes SQL trop longues.

  • Serveur de type Legacy :

Pour obtenir ce type de logs, il faut ajouter les lignes suivante dans le fichier my.cnf :

slow_query_log = 1
slow_query_log_file = /home/mysql/slow.log

Vous pourrez retrouver les logs de votre serveur SQL Privé dans le fichier sqlprive.log se trouvant dans le répertoire /home/mysql/ de votre FTP du SQL privé.

Nous vous recommandons alors de vider ou de supprimer ce fichier régulièrement pour éviter de surcharger votre SQL privé inutilement.

  • Serveur de type Docker :

Pour obtenir ce type de logs, il vous faut les récupérer à la racine de votre serveur FTP du SQL Privé Docker en vous y connectant en SFTP. Pour vous y connecter, vous pouvez vous aider de ce guide :

Optimiser vos bases de données

Il faut entretenir sa base de données pour qu'elle soit toujours performante. Ce que l'on entend par performante, c'est le fait que les informations contenues dans la base soient le plus rapidement retournées au script qui les demande.

Pour cela, il faut une base bien structurée et optimisée. Nous allons voir comment optimiser au mieux votre base.

Indexer la base de données

Pour augmenter la rapidité des recherches lors d'une requête, il faut mettre un index sur les champs qui sont utilisés dans les clauses WHERE.

Exemple : Vous faites régulièrement une recherche de personne par rapport à la ville. Il faut indexer le champ "ville" avec la requête suivante :

ALTER TABLE `test` ADD INDEX ( `ville` );

Purger la base de données

Certaines de vos données ne sont plus consultées. Pourquoi ne pas les archiver ? Vos tables seront moins remplies et les recherches iront plus vite.

Limitation d'affichage

Limiter l'affichage des enregistrements à un nombre restreint (par exemple 10 par page) avec la partie LIMIT de votre requête SQL.

Regroupement des requêtes

Regrouper vos requêtes en début de script de cette manière :

connexion_base
requete1
requete2
...
déconnexion_base
Affichage ...
Traitement des données
Boucles ...
Affichage ...
...

Optimiser via l'utilisation du cache

Si vous avez des éléments qui sont récupérés de la base de données et qui ne changent pas, mettez-les en cache.

Ce type d'astuce diminuera drastiquement vos accès à la base de données et accélérera le chargement de votre site.

Vous pouvez aussi réaliser du cache de session. Mettre les résultats des requêtes en variable de session. À la prochaine requête identique, vous ne l'exécuterez plus, vous récupérerez les variables de session à la place.

Récupérer uniquement les données utiles

Dans vos requêtes SQL, vérifiez que vous ne sélectionnez que ce dont vous avez besoin, et surtout que vous n'avez pas oublié les liaisons entre les tables.

Exemple :

(where table1.champs = table2.champs2)

Éviter les options très gourmandes en ressources

Évitez d'utiliser "HAVING" par exemple. Elle alourdit vos requêtes. De la même manière, évitez d'utiliser "GROUP BY", sauf si cela s'avère strictement nécessaire.

Changer la version Mysql

Pour connaître la version de MySQL sur votre serveur SQL Privé, vous devez vous rendre sur l'onglet "Générales" après avoir choisi votre serveur SQL Privé.

  • La version utilisée actuellement apparaît à la ligne "Version".

Pour modifier cette version, il vous suffit de cliquer sur "Modifier la version".

  • Avant de migrer vers une version supérieur, assurez vous que votre base de données est compatible avec la version choisie.
  • La modification est ensuite effective sous quelques minutes.

Si vous utilisez déjà une version 5.5 de MySQL, il ne sera pas possible de changer celle-ci car il s'agit de la dernière version proposée.

Mon serveur SQL Privé est-il de type "Legacy" ou "Docker" ?

  • Les anciens serveurs SQL Privé sont de type "Legacy".
  • Les nouveaux serveurs SQL Privé sont de type "Docker".

Il s'agit de deux infrastructures différentes. Il vous est possible de vérifier si vous disposez d'un serveur Docker dans votre espace client.

Pourquoi je rencontre un souci de date erronée avec mon serveur SQL Privé ?

  • Il s'agit d'un souci officiel sur la version 5.1.31 de Mysql. La solution pour corriger cela est de basculer vers la version 5.5.14.

Puis-je me connecter en Root sur mon serveur SQL Privé ?

  • Cela est uniquement possible sur les serveurs SQL Privé de type Legacy.

Comment connaître la taille d'une de mes bases de données ?

  • Celle-ci apparaît dans l'onglet "Bases de données" dans la colonne "Espace utilisé".

Comment supprimer une base de données ou un utilisateur ?

  • Il vous suffit pour cela de vous rendre dans l'onglet "Utilisateurs et droits" ou "Bases de données", puis de cliquer sur la roue dentée, et enfin sur "Supprimer".

Comment connaître la RAM consommée actuellement sur votre serveur ?

  • Pour les serveurs SQL Privé de type "Docker", vous pouvez retrouver cela dans l'onglet "Métriques" de votre espace client.

  • Il n'est par contre pas possible d'obtenir cette information sur un serveur de type "Legacy".

Comment visualiser les logs sur votre serveur ?

  • Il n'est pas possible pour le moment de visualiser cette information dans votre espace client, cela apparaîtra par la suite.

Puis-je mettre en place un redémarrage en CRON de mon serveur SQL Privé ?

  • Cela n'est pas proposée à l'heure actuelle.

Puis-je dupliquer une base de données ?

  • Cette fonctionnalité n'est pas encore proposée dans votre espace client.

Mes sauvegardes de bases de données sont-elles stockées sur mon serveur SQL Privé ?

  • Les sauvegardes de vos bases ne sont pas stockées sur votre serveur SQL Privé, cela n'utilise donc pas d'espace de votre côté. De plus, celles-ci sont stockées 30 jours sur notre infrastructure.

Pourquoi je rencontre le message "Too many connections" sur mon site web ?

  • Cela est dû au dépassement du nombre de connexions simultanés sur votre SQL Privé.

Il vous est possible d'augmenter le "MaxConnections" en modifiant votre serveurs.