MySQL

MySQL est le système de base de données le plus populaire sur le Web. Il alimente des cadres d’application populaires tels que WordPress, Drupal ou Magento et c’est la base de données incontournable pour de nombreux développeurs web.

MySQL 5.7 (Percona) est actuellement disponible sur Simple Hosting et peut être utilisé avec tous les langages.

Vous pouvez créer autant de bases de données et d’utilisateurs que vous le souhaitez dans votre instance. Vous n’êtes limité que par la taille du disque, que vous pouvez augmenter à tout moment jusqu’à 1 To.

Le service de base de données MySQL peut être géré depuis la console d’urgence SSH ou depuis une interface Web. Cet article décrit comment accéder, créer et gérer les bases de données MySQL sur Simple Hosting.

Connexion à votre base de données

Le service de base de données MySQL est disponible sur localhost et il n’est pas possible d’accéder au service depuis l’extérieur de l’instance.

La méthode de connexion préférée est le socket Unix situé sur le chemin détaillé ci-dessous. Un utilisateur par défaut (root) et une base de données (default_db) existent afin que vous puissiez tester rapidement votre connexion et effectuer des tâches de gestion.

Paramètres de connexion par défaut :

Adresse: localhost
Socket: /srv/run/mysqld/mysqld.sock
Utilisateur: root
Mot de passe: <vide>
Base de données: default_db

Nous vous encourageons à créer de nouveaux utilisateurs avec de fortes références et de nouvelles bases de données pour vos sites Web ou applications. Vous trouverez ci-dessous des instructions sur la façon d’effectuer ces tâches et d’autres tâches de gestion.

Gérer votre base de données avec phpMyAdmin

Vous pouvez accéder à votre base de données Simple Hosting à partir de la section Base de données dans la page de gestion de votre instance.

Cliquez sur le bouton « Aller à phpMyAdmin » dans le widget « Gestion de la base de données » et entrez votre nom d’utilisateur de l’instance et votre mot de passe de l’instance pour vous authentifier avec votre panneau de contrôle.

Une fois terminé, vous verrez alors la page de connexion phpMyAdmin.

Par défaut, l’utilisateur phpMyAdmin est root et il n’y a pas de mot de passe. Tapez donc root comme utilisateur, laissez le mot de passe vide, et cliquez sur Go. Vous serez alors connecté à PHPmyAdmin et pourrez gérer vos bases de données à partir de là.

Créer une base de données MySQL

Pour créer une base de données, connectez-vous à votre interface phpMyAdmin à partir de votre page d’administration Simple Hosting et une fois dans la base de données, cliquez sur l’onglet Bases de données.

Ensuite, choisissez un nom pour votre base de données et terminez en cliquant sur Créer.

Maintenant vous voudrez créer vos utilisateurs pour la base de données.

Pour ce faire, utilisez l’option Privileges une fois que vous êtes dans la page d’administration de la base de données (cliquez sur le nom de la base de données pour vous y rendre). Cliquez sur le lien Ajouter un nouvel utilisateur et remplissez le formulaire pour créer un utilisateur.

Importation d’une base de données existante

Pour importer votre base de données et l’utiliser avec l’instance Simpe Hosting de Gandi, allez dans votre interface phpMyAdmin et cliquez sur l’onglet Importer.

Note

phpMyAdmin supporte les fichiers compressés. Ils doivent être dans le format : “nom.(format).(compression)”

Si votre base de données est trop grande, vous devrez déposer son fichier .sql par sFTP dans votre répertoire /lamp0/tmp. Ensuite, vous pouvez trouver le fichier et l’importer à partir de phpMyAdmin sans rencontrer d’erreurs sur le fait qu’il est trop gros.

Gestion de votre base de données MySQL à partir de la ligne de commande

Pour accéder à votre base de données MySQL par ligne de commande, vous devez d’abord vous connecter à votre instance via la console SSH.

Notez que la console se déconnectera automatiquement après quelques minutes d’inactivité. Si cela se produit, vous pouvez simplement initier une nouvelle connexion SSH sans avoir besoin de réactiver la console.

Accéder à votre base de données

Une fois connecté à votre console SSH, vous pouvez vous connecter à votre base de données MySQL avec le client MySQL avec cette ligne (si aucun mot de passe root n’a été défini) :

mysql -u root

Ou, si vous avez déjà défini un mot de passe root, avec ce qui suit :

mysql -u root -p

Exporter une base de données

Ceci est utile pour faire des sauvegardes de votre base de données. Pour ce faire, vous pouvez utiliser la commande mysqldump comme ceci (si vous voulez exporter toutes vos bases de données) :

mysqldump -u root -p --all-databases > /srv/data/tmp/backup_mysql.sql

Ou comme ça, si vous voulez en exporter un seul (en remplaçant my_database par le nom de votre base de données) :

mysqldump -u root -p --database my_database > /srv/data/tmp/backup_mysql.sql

Il est possible d’effectuer des exportations automatiques périodiques en utilisant également un job anacron. Pour en savoir plus à ce sujet, consultez le guide anacron.

Note

Notez que seuls les répertoires /srv/data/tmp et /srv/data/home sont accessible en écriture - à l’exception des vhostss. Par conséquent, nous recommandons de créer un répertoire spécifique pour les exportations MySQL afin de les regrouper au même endroit.

Réinitialisation du mot de passe utilisateur “root” pour MySQL

Il est possible de réinitialiser le mot de passe de l’utilisateur MySQL root directement depuis votre interface Gandi, en cliquant sur le bouton Réinitialiser le mot de passe.

Une fois que vous avez fait cela, vous pouvez vous connecter à MySQL avec l’utilisateur root et un mot de passe vierge. Le fait de réinitialiser votre mot de passe utilisateur root n’affecte pas votre base de données d’une autre manière.

Note

Rappelez-vous que vous devrez modifier toutes les pages de configuration de vos scripts afin qu’ils puissent accéder à votre base de données dans le cas où vous changeriez votre mot de passe.

Journaux

Vous pouvez accéder aux logs de la base de données à partir du panneau de contrôle de votre instance, via sFTP ou la console SSH.

  • error.log: Les journaux relatifs au serveur MySQL. Vous pouvez voir les tables qui se sont plantées et qui ont été réparées.
  • slow-queries.log: Ici, vous pouvez voir les requêtes qui prennent un temps d’exécution inhabituellement long. Cela peut se produire dans le cas où certaines tables sont verrouillées.

Exemples de journaux

La sortie suivante montre que MySQL a redémarré :

120614 16:09:59 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.6
120614 16:09:59  InnoDB: Initializing buffer pool, size = 8.0M
120614 16:09:59  InnoDB: Completed initialization of buffer pool
120614 16:09:59  InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
120614 16:09:59  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
120614 16:10:00 InnoDB Plugin 1.0.17 started; log sequence number 2657932
120614 16:10:00 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.61-2'  socket: '/srv/run/mysqld/mysqld.sock'  port: 0  (Debian)

Dans cette sortie, on voit que les tables de votre base de données ont été vérifiées ; si les tables semblent s’être plantées, MySQL essaie de les réparer automatiquement :

120614 16:04:45 [ERROR] /usr/sbin/mysqld: Table './wp/wp_comments' is marked as crashed and should be repaired
120614 16:04:45 [Warning] Checking table:   './wp/wp_comments'
120614 16:04:45 [ERROR] /usr/sbin/mysqld: Table './wp/wp_links' is marked as crashed and should be repaired
120614 16:04:45 [Warning] Checking table:   './wp/wp_links'
120614 16:04:45 [ERROR] /usr/sbin/mysqld: Table './wp/wp_options' is marked as crashed and should be repaired
120614 16:04:45 [Warning] Checking table:   './wp/wp_options'