Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mariadb [Le 18/10/2015, 15:07]
nekdev [PHP]
mariadb [Le 31/08/2022, 23:38] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 5: Ligne 5:
 ====== MariaDB ====== ====== MariaDB ======
  
-**MariaDB** est un système de gestion de base de données relationnelles. Après le rachat de [[:MySQL]] par Sun Microsystems,​ puis de Sun par Oracle Corporation, ​le fondateur ​de MySQL (Michael Widenius) démissionne pour lancer une version alternative,​ sous licence GPL et 100% compatible avec MySQL.+**[[wpfr>MariaDB]]** est un système de gestion de base de données relationnelles. Après le rachat de [[wpfr>MySQL]] par Sun Microsystems,​ puis de Sun par Oracle Corporation, ​son fondateur (Michael Widenius) démissionne pour lancer une version alternative,​ sous licence GPL et 100% compatible avec [[:MySQL]].
 MariaDB se base sur le code source de MySQL 5.1. MariaDB se base sur le code source de MySQL 5.1.
  
---- //​Source: ​[[http://fr.wikipedia.org/​wiki/​MariaDB|Wikipédia]]//+Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL. Il s'​avère aussi plus performant selon certaines études. Il est utilisé comme serveur MySQL par défaut sur [[wpfr>​Debian]]Sur Ubuntu cependant, c'est toujours [[:MySQL]] qui est proposé par défaut.
  
 ===== Installation ===== ===== Installation =====
  
-Le site https://​downloads.mariadb.org/​mariadb/​repositories/​ nous fournit un dépôt avec des paquets tout faits.+MariaDB est disponible dans les dépôts officiels.
  
-==== Ajouter le dépôt ​==== +Pour installer le serveur MariaDB : [[apt>​mariadb-server]] ou 
-=== A partir ​de Lucid - Ubuntu 10.04 ===+ 
 +<​code>​sudo apt install mariadb-server</​code>​ 
 + 
 +<note tip>Lien (en) pour le passage de la v10.1 à la v10.2 sous [[:Bionic]] : https://​mariadb.com/​docs/​deploy/​upgrade-community-server-cs102-ubuntu18/​\\ 
 +version qui apporte notamment le support du type JSON</​note>​ 
 +==== PHP ==== 
 + 
 +Pour que [[:PHP]] dialogue avec le serveur MariaDB, il ne faut pas oublier d'​installer le [[:​php#​association_avec_un_serveur_de_base_de_donnees|module correspondant]],​ qui reste [[apt>​php-mysql]]. 
 + 
 +===== Différences entre MariaDB et MySQL ===== 
 + 
 +<note important>​L'​ensemble du comportement du serveur MariaDB reste très similaire à celui de MySQLLa commande ''​mysql''​ reste valable, ainsi que les commandes ''​systemctl ... mysql''​. 
 + 
 +Pour l'​essentiel vous pouvez donc suivre la [[:​mysql|documentation de MySQL]]. On trouve cependant quelques différences auxquelles il faudra éventuellement faire attention.</​note>​ 
 + 
 +==== auth_socket s'​appelle unix_socket sous MariaDB ====
  
-<​code ​bash+<​code ​mysql>MariaDB [(none)]>​ SELECT user, host, plugin, password FROM mysql.user; 
-sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB ++------+-----------+-------------+----------+ 
-echo deb http://​ftp.igh.cnrs.fr/​pub/​mariadb//​repo/​5.5/​ubuntu $(lsb_release ​-sc) main sudo tee /​etc/​apt/​sources.list.d/​MariaDB.list ​+| user | host      | plugin ​     | password | 
 ++------+-----------+-------------+----------+ 
 +root | localhost | unix_socket |          | 
 ++------+-----------+-------------+----------+
 </​code>​ </​code>​
  
-<​note>​+Donc si vous entendez parler de l'un ou de l'​autre de ces plugins, il s'agit du même comportement (qui permet d'​utiliser le système d'​authentification des utilisateurs Ubuntu, plutôt que des couples identifiants / mots de passe spécifiques à MySQL).
  
-Si vous utilisez un OS basé sur ubuntu (ex : Linux mint). Il est possible que le paquet ne soit pas présenté pour cette version. Il sera alors necessaire d'​adapter le chemin. Soit en éditant le fichier ​/etc/apt/sources.list.d/MariaDB.list,​ soit en modifiant directement la ligne de commande.+Voir en particulier la section ​//[[#​utilisateurs]]// adaptée ci-dessous.
  
-Dans mon cas sous linux mint olivia, j'ai édité le fichier /​etc/​apt/​sources.list.d/​MariaDB.list.+==== unix_socket par défaut pour root dès Xenial ====
  
-avant :  <code bash> deb http://ftp.igh.cnrs.fr/pub/mariadb//repo/5.5/ubuntu olivia main </​code>​+//[[:mysql#​authentification|unix_socket]]// est utilisé par défaut pour le compte ​//root// dès [[:​xenial|Ubuntu 16.04 Xenial]].
  
-après : <code bash> deb http://ftp.igh.cnrs.fr/pub/mariadb//​repo/​5.5/ubuntu precise main </​code>​+Donc en ce qui concerne l'​authentification,​ en particulier celle de l'​utilisateur ​//root//, et l'​accès à la commande ''​mysql''​ en "​super-administrateur",​ suivez la documentation de MySQL concernant [[:Bionic]] plutôt que [[:Xenial]] si vous utilisez MariaDB même sur Xenial.
  
-</​note>​ +==== password plutôt que authentication_string sur la table users ====
-<​note>​ +
-Mariadb 5.5 est présent dans les dépôts officiels d'​Ubuntu 14.4 Trusty. +
-</​note>​ +
-==== Recharger ​la liste des paquets ​====+
  
-<​code ​bash+Dans la table //users// de la base de données //mysql//, où sont stockés les utilisateurs MySQL, les mots de passes sont renseignés dans le champs //​password//​ sur MariaDB, au lieu de //​authentication_string//​ sur MySQL. 
-sudo apt-get update+ 
 + 
 +==== Utilisateurs ==== 
 + 
 +La gestion des utilisateurs est pour le moment assez différente sur MariaDB et sur MySQL. La gestion des algorithmes de chiffrement n'​étant pas similaire, certaines commandes de la section [[:​mysql#​utilisateurs]] retourneront actuellement une erreur de syntaxe sur MariaDB. Voici des variantes fonctionnelles pour MariaDB. 
 + 
 +=== Lister les utilisateurs === 
 + 
 +Vous pouvez lister les utilisateurs ainsi que leurs [[#​authentification|méthodes d'​authentification]] avec la requête suivante : 
 +<​code ​mysql
 +SELECT user, host, plugin, password FROM mysql.user;
 </​code>​ </​code>​
  
-==== Installer les paquets ====+=== Créer un utilisateur ​===
  
-Pour installer le serveur MariaDB ​[[apt>​mariadb-server]] ou +Pour créer un utilisateur MySQL identifié au moyen d'un mot de passe 
-<​code ​bash+<​code ​mysql
-sudo apt-get install mariadb-server+CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​
 </​code>​ </​code>​
-Pour installer le client MariaDB ​[[apt>​mariadb-client]] ou + 
-<​code ​bash+Pour créer un accès MySQL à un utilisateur Ubuntu ​
-sudo apt-get install mariadb-client+<​code ​mysql
 +CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH unix_socket;​
 </​code>​ </​code>​
  
-===== PHP =====+=== Modifier l'​accès d'un utilisateur ​=== 
 + 
 +Pour modifier l'​accès d'un utilisateur MySQL existant, et l'​identifier par mot de passe : 
 +<code mysql> 
 +ALTER USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​ 
 +FLUSH PRIVILEGES;​ 
 +</​code>​ 
 + 
 +Pour lier un compte MySQL existant à un utilisateur Ubuntu (il faut que les noms d'​utilisateur soient les mêmes) : 
 +<code mysql> 
 +ALTER USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH unix_socket;​ 
 +FLUSH PRIVILEGES;​ 
 +</​code>​ 
 + 
 +=== Supprimer un utilisateur ​=== 
 + 
 +Pour supprimer un utilisateur : 
 +<code mysql> 
 +DROP USER '​nom_utilisateur'​@'​localhost';​ 
 +</​code>​ 
 + 
 +==== UTF-8 par défaut partout ==== 
 + 
 +MariaDB opte pour l'​[[wpfr>​UTF-8]] par défaut pour l'​ensemble des opérations (y compris la création de base de données). Il est donc inutile de prendre [[:​mysql#​configuration_en_utf-8|cette section]] en compte, et le comportement général du serveur de base de données s'en trouve mieux harmonisé.
  
-Pour que PHP5 dialogue avec le serveur MariaDB, il ne faut pas oublier d'​installer le paquet [[apt>​php5-mysql]].+==== Requêtes ====
  
 +L'​alias <​code>​-></​code>​ pour JSON_EXTRACT ne fonctionne pas sur MariaDB
  
-===== Définir le mot de passe root =====+[[https://​mariadb.com/​kb/​en/​json_extract/​]] [en]
  
-Lors de la première installation vous devrez définir le mot de passe root : 
  
-<code bash>​sudo mysql_secure_installation</​code>​ 
 ===== Liens ===== ===== Liens =====
  
-  * [[http://​mariadb.org/​|MariaDB.org]] [en]+  * [[https://​mariadb.org/​|MariaDB.org]] [en]
   * [[https://​downloads.mariadb.org/​mariadb/​repositories/​|Setting up MariaDB Repositories]] [en]   * [[https://​downloads.mariadb.org/​mariadb/​repositories/​|Setting up MariaDB Repositories]] [en]
-  * [[http://ourdelta.org/ubuntu|OurDelta]] [en]+  * [[https://mariadb.com/kb/en/|base de connaissances en ligne]] [en] (sélectionner en haut à droite '​Search'​)
   * [[https://​launchpad.net/​maria|MariaDB sur launchpad]] [en]   * [[https://​launchpad.net/​maria|MariaDB sur launchpad]] [en]
   * La page [[:​mysql_outils|Outils MySQL]] -> Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB   * La page [[:​mysql_outils|Outils MySQL]] -> Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB
Ligne 73: Ligne 120:
  
 ---- ----
-//Contributeur ​: [[:​utilisateurs:​time132|time132]] ​Le 12/11/201016:03//+//Contributeurs ​: [[:​utilisateurs:​time132|time132]], [[:​utilisateurs/bcag2]][[:utilisateurs:​krodelabestiole]]//
  • mariadb.1445173658.txt.gz
  • Dernière modification: Le 18/10/2015, 15:07
  • par nekdev