User Tools

Site Tools


databases:mysql

MySQL

logo

Présentation

MySQL (prononcer [maj.ɛs.ky.ɛl]) est un système de gestion de bases de données relationnelles (SGBDR). Il est distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde4, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle, PostgreSQL et Microsoft SQL Server.

Son nom vient du prénom de la fille du cocréateur Michael Widenius, My (sv) (prononcer [my]). SQL fait référence au Structured Query Language, le langage de requête utilisé.

MariaDB

logo MariaDB

Présentation

MariaDB est un fork de MySQL au fort potentiel L'intégration du projet MySQL dans le portefeuille de produits Oracle suscite critiques et méfiances comme nous l'avons déjà évoqué. Cela doit surtout être dû aux différences entre la version MySQL sous licence GPL et le produit payant Entreprise. De plus en plus de nouvelles fonctions sont seulement disponibles sur la version propriétaire payante. Des bases de données erronées non publiques et le manque de tests ont donné une image d'un programme négligé auprès de sa communauté. Le soutien de la communauté open source est par conséquent en baisse constante.

On appelle fork un nouveau logiciel créé à partir du code source d'un logiciel existant (généralement open source). Il est basé sur le code source du projet-mère et peut être développé davantage au sein d'un projet indépendant.

Dès 2009, l'équipe de développement et le fondateur de MySQL Michael Monty Widenius tournait le dos au populaire système de base de données et a lancé le fork à source ouverte MariaDB. Fin 2012, Fedora, OpenSUSE, Slackware et Arch Linux présentaient les premières distributions Linux pour passer de MySQL à MariaDB comme installation standard. De nombreux projets open source, ainsi que les sociétés de logiciels bien connus et plateformes Web ont suivi cet exemple, à l'image de Mozilla, Ubuntu, Google, Red Hat Entreprise Linux, Web of Trust, TeamSpeak, la fondation Wikimedia ainsi que le projet de logiciels XAMPP.

MariaDB se caractérise déjà par un développement continu, en comparaison avec d'autres systèmes MySQL open source. Il est donc probable que ce fork dépasse un jour son projet-mère.

Télécharger MariaDB

phpMyAdmin

logo PhpMyAdmin

Présentation

phpMyAdmin (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL réalisée principalement en PHP et distribuée sous licence GNU GPL

Il s'agit de l'une des plus célèbres interfaces pour gérer une base de données MySQL sur un serveur PHP. De nombreux hébergeurs, gratuits comme payants, le proposent ce qui évite à l'utilisateur d'avoir à l'installer.

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder commodément une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL.

Les requêtes SQL restent possibles, ce qui permet de les tester interactivement lors de la création d'un site pour les utiliser ensuite en batch (c'est-à-dire en différé) une fois au point.

Télécharger phpMyAdmin

Utilisation en lignes de commandes

On peut utiliser MySQL en lignes de commande.

Lancer MySQL

Sur Windows, il faut ajouter winpty devant mysql : winpty mysql, car on utilise MySQL pour Windows, en utilisant l'environnement Unix.

Ce n'est pas la peine si on utilise Cmder car il intègre Clink.

Accès sans mot de passe

Si aucun mot de passe a été mis sur l'accès à MySQL :

mysql --user=utilisateur

ou

mysql -u utilisateur

Accès avec mot de passe

Si un mot de passe a été mis sur l'accès à MySQL :

mysql --user=utilisateur --passsword=mot_de_passe

ou (il faut coller le mot de passe à la commande -u)

mysql -u utilisateur -pmot_de_passe

On peut également ne pas indiquer le mot de passe, il sera demandé ensuite :

mysql -u utilisateur -p

Connexion à une base de données particulière

-D correspond à :

mysql -u utilisateur -p --database=nom_de_la_base

ou

mysql -u utilisateur -p -D nom_de_la_base

Connexion avec affichage vertical

Pour avoir un affichage vertical des données tout au long de la connexion, il faut ajouter -E à la fin de la commande de connexion :

mysql -u utilisateur -p -D nom_de_la_base -E

Utiliser MySQL

Il faut mettre ; ou \g à la fin des commandes MySQL.

Si on met \G à la fin d'une commande, l'affichage du résultat de cette commande sera vertical. \\
A partir de là, on peut lancer toutes les commandes SQL qu'on désire.

Bases de données

Créer une base de données
mysql> create database ma_base;
Supprimer une base de données
mysql> drop database ma_base;
Lister les bases de données
mysql> show databases;
Choisir la base à utiliser
mysql> use nom_de_la_base;

Tables

Créer une table
mysql> create table ma_table
  (
    champs_1 type_de_données,
    champs_2 type_de_données,
    champs_3 type_de_données
  );
Supprimer une table
mysql> drop table ma_table;
Modifier une table
mysql> alter table ma_table
'instructions';
Vider une table
mysql> delete from ma_table;
Vider une table avec réinitialisation des indexs automatiques
mysql> truncate table ma_table;
Voir les tables
mysql> show tables;
Voir les champs d'une table
mysql> describe ma_table;
Voir des données
mysql> select * from ma_table;
mysql> select champs1 from ma_table where champs_1="valeur";

Quitter MySQL

mysql> quit

Sauvegarder un base de données

On utilise l'outil mysqldump pur éffectuer une sauvegarde d'une base de données.

Parmi toutes les options disponibles avec cet outils, certaines sont assez intéressantes, –opt (qui est activée par défaut) les regroupe presque toutes mais verrouille les tables lors de son utilisation . On peut alors utiliser –skip-lock-tables pour désactiver ce verrouillage. La base de données fonctionne alors normalement pendant la sauvegarde.
L'intégrité des données récupérées est garantie par le fait d'être dans une transaction, pour cela, on ajoute l'option –single-transaction.
Cela donne la commande :

mysqldump -u user_name -p --single-transaction --skip-lock-tables ma_base > ma_sauvegarde.sql

Renommer un base de données

On peut renommer une base de données en utilisant une sauvegarde, c'est une des meilleures méthodes pour le faire.
Il suffit de sauvegarder sa base de données, puis d'en créer une nouvelle et d'y importer cette sauvegarder.

Après avoir fait la sauvegarder, il faut créer une nouvelle base :

mysql> create database ma_nouvelle_base;

Puis on la choisi :

mysql> use ma_nouvelle_base;

Et enfin, on y importe la sauvegarde :

mysql> source ./ma_sauvegarde.sql;

Il faudra aussi ajuster les permissions de la nouvelle base de données.

databases/mysql.txt · Last modified: 2020/09/19 01:25 (external edit)