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 22/03/2018, 11:12]
L'Africain [Définir/Redéfinir le mot de passe root et les différentes sécurités]
mariadb [Le 07/09/2018, 11:07] (Version actuelle)
91.103.43.10 [Liens] http://ourdelta.org/ubuntu link is broken
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 =====
  
-=== Ubuntu 16.04 === +MariaDB ​est disponible ​dans les dépôts officiels.
-Depuis la version 16.04, mariadb ​est dans les dépôts officiels.\\ +
- ​[[:​mariadb#​Installer les paquets|Pour l'​installer,​ cf. ci-dessous "​Installer les paquets"​]]+
  
-Pour la version 14.04, mariadb est dans les dépôts officiels. Cependant, ​le numéro de version figure encore(([[http://​packages.ubuntu.com/​trusty/​database/​mariadb-server-5.5]])).+Pour installer ​le serveur MariaDB : [[apt>mariadb-server]] ​ou
  
-==== Recharger la liste des paquets ====+<​code>​sudo apt install mariadb-server</​code>​
  
-<​code ​bash+==== PHP ==== 
-sudo apt-get update+ 
 +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 MySQL. La commande ''​mysql''​ reste valable, ainsi que les commandes ''​systemctl ... myslq''​. 
 + 
 +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 ​mysql>MariaDB [(none)]>​ SELECT user, host, plugin, password FROM mysql.user; 
 ++------+-----------+-------------+----------+ 
 +| user | host      | plugin ​     | password | 
 ++------+-----------+-------------+----------+ 
 +| root | localhost | unix_socket |          | 
 ++------+-----------+-------------+----------+
 </​code>​ </​code>​
  
-==== Installer les paquets ====+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).
  
-Pour installer le serveur MariaDB ​: [[apt>​mariadb-server]] ou +Voir en particulier la section //​[[#​utilisateurs]]//​ adaptée ci-dessous. 
-<​code ​bash> + 
-sudo apt-get install mariadb-server +==== unix_socket par défaut pour root dès Xenial ==== 
-</​code>​ + 
-Pour installer ​le client ​MariaDB : [[apt>​mariadb-client]] ou +//[[:mysql#​authentification|unix_socket]]//​ est utilisé par défaut pour le compte //root// dès [[:​xenial|Ubuntu 16.04 Xenial]]. 
-<​code ​bash+ 
-sudo apt-get install mariadb-client+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. 
 + 
 +==== password plutôt que authentication_string sur la table users ==== 
 + 
 +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. 
 + 
 +Cela n'a pas un gros impact, et les commandes pour gérer les utilisateurs restent globalement les mêmes, mais pour [[:​mysql#​lister_les_utilisateurs|lister les utilisateurs existants]] en affichant leurs méthodes d'​authentification on utilisera plutôt : 
 +<​code ​mysql>SELECT user, host, plugin, password FROM mysql.user;</​code>​ 
 + 
 +==== 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>​
  
-===== PHP =====+=== Créer un utilisateur ​===
  
-Pour que PHP dialogue avec le serveur MariaDB, il ne faut pas oublier ​d'installer le paquet :\\ +Pour créer un utilisateur MySQL identifié au moyen d'un mot de passe : 
-pour le support ​de PHP7[[apt>​php-mysql]] \\ +<​code ​mysql> 
-pour le support de PHP5: [[apt>php5-mysql]].+CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​ 
 +</code>
  
 +Pour créer un accès MySQL à un utilisateur Ubuntu :
 +<code mysql>
 +CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH unix_socket;​
 +</​code>​
  
-===== Définir/​Redéfinir le mot de passe root et les différentes sécurités =====+=== Modifier l'​accès d'un utilisateur ​===
  
-Lors de la première installation vous devrez définir le mot de passe root +Pour modifier l'​accès d'un utilisateur MySQL existant, et l'​identifier par mot de passe : 
-<​code ​bash>sudo mysql_secure_installation</​code>​+<​code ​mysql> 
 +SET PASSWORD FOR '​nom_utilisateur'​@'​localhost'​ = PASSWORD('​mot_de_passe_solide'​);​ 
 +</​code>​ 
 +Les requêtes suivantes sont nécessaires si on change la [[:​mysql#​authentification|méthode d'​authentification]] : 
 +<code mysql> 
 +UPDATE mysql.user SET plugin = ''​ WHERE user = '​nom_utilisateur'​ AND host = '​localhost';​ 
 +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> 
 +UPDATE mysql.user SET plugin = '​unix_socket',​ password = ''​ WHERE user = '​nom_utilisateur'​ AND host = '​localhost';​ 
 +FLUSH PRIVILEGES;​ 
 +</​code>​
  
-Permet aussi de limiter l'​accès root uniquement en local… si vous rencontrez l'​erreur \\ +=== Supprimer un utilisateur ===
-//ERROR 1698 (28000): Access denied for user '​root'​@'​localhost'//​ \\ +
-pensez bien à être en sudo +
-<code bash>​sudo mysql -u root</​code>​ +
-Pour phpmyadmin, il faut utiliser le compte éponyme… //​phpmyadmin//​ avec le mot de passe définit lors de l'​installation (de phpmyadmin).+
  
-Si vous avez oublié votre mot de passe root :\\ +Pour supprimer un utilisateur ​
-//ERROR 1045 (28000): Access denied for user 'root'​@'​localhost'​// \\ +<code mysql> 
-les solutions classiques à mysql ne résolve pas le problème. Il faut relancer  +DROP USER 'nom_utilisateur'​@'​localhost'​;
-<code bash>​sudo mysql_secure_installation +
-… +
-Change the root password? [Y/n]  +
-New password: ​+
 </​code>​ </​code>​
-Si vous souhaitez accéder à votre serveur sur un réseau il vous faudra répondre à la question qui vous proposera de desactiver les connexions distantes. 
-Si vous rencontrez des problèmes de connexion sur un serveur de développement,​ en particulier avec phpMyAdmin, consultez [[https://​www.citizenz.info/​mariadb-mysql-connexion-root-avec-phpmyadmin-sous-ubuntu-16-04|ce tutoriel]] afin de rétablir le fonctionnement original de type MySQL. 
  
-Après cela le fonctionnement est semblable à [[:Mysql]].+==== UTF-8 par défaut partout ====
  
-=====Problèmes connus===== +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é.
-====Connexion impossible==== +
-Si vous n'arrivez à vous connecter à Mariadb, et rencontrez ​l'erreur suivante: +
-<​code>​ERROR 1698 (28000): Access denied for user 'root'​@'​localhost'</​code>​+
  
-Il vous faudra modifier les droits de l'​utilisateur root. Entrez dans un [[:​terminal]] les commandes suivantes: 
-<code bash>​sudo mysql -u root 
-use mysql; 
-update user set plugin=''​ where User='​root';​ 
-flush privileges; 
-exit;</​code>​ 
 ===== Liens ===== ===== Liens =====
  
   * [[http://​mariadb.org/​|MariaDB.org]] [en]   * [[http://​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://​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 87: Ligne 116:
  
 ---- ----
-//​Contributeurs : [[:​utilisateurs:​time132|time132]],​ [[:​utilisateurs/​bcag2]]//​+//​Contributeurs : [[:​utilisateurs:​time132|time132]],​ [[:​utilisateurs/​bcag2]], [[:​utilisateurs:​krodelabestiole]]//
  • mariadb.1521713560.txt.gz
  • Dernière modification: Le 22/03/2018, 11:12
  • par L'Africain