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
mysql [Le 11/04/2019, 16:03]
82.251.241.242 [Sauvegarde et importation]
mysql [Le 20/12/2021, 23:06] (Version actuelle)
wiki-corrector-bot 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 1: Ligne 1:
-{{tag>​Xenial Bionic sgbd mysql serveur réseau}} 
  
-----+{{tag>​Xenial Bionic Focal sgbd mysql serveur réseau}}
  
 ====== MySQL ====== ====== MySQL ======
  
-**[[https://​www.mysql.com/​|MySQL]]** est un [[wpfr>​SGBD|système de gestion de bases de données relationnelles]] (SGBDR) ​libre, gratuit, performant, très populaire, multi-threadé,​ multi-utilisateurs…+**[[https://​www.mysql.com/​|MySQL]]** est un [[wpfr>​SGBD|système de gestion de bases de données relationnelles]] (SGBDR) ​propriétaire, gratuit, performant, très populaire, multi-threadé,​ multi-utilisateurs…
  
-<note tip>​MySQL appartient à [[wpfr>​Oracle_(entreprise)|Oracle]]. Il existe un fork plus communautaire,​ 100% compatible MySQL et a priori plus performant créé et maintenu par Michael Wideniusm fondateur de MySQL. Il s'agit de [[:​MariaDB]],​ qui est également disponible sur Ubuntu, et choisi par défaut sur [[wpfr>​Debian]].</​note>​+<note tip>​MySQL appartient à [[wpfr>​Oracle_(entreprise)|Oracle]]. Il existe un fork open-source, ​plus communautaire,​ 100% compatible MySQL et a priori plus performant créé et maintenu par Michael Wideniusm fondateur de MySQL. Il s'agit de [[:​MariaDB]],​ qui est également disponible sur Ubuntu, et choisi par défaut sur [[wpfr>​Debian]].</​note>​
  
 MySQL est principalement un //serveur// de bases de données. Pour s'y connecter localement ou à distance, on utilise un //client//. Il peut s'agir de la commande ''​mysql'',​ ou couramment d'un script [[:PHP]]. Il faudra dans ce cas installer le [[:​php#​association_avec_un_serveur_de_base_de_donnees|module]] [[apt>​php-mysql]] qui permet à PHP de communiquer avec un serveur MySQL. ​ MySQL est principalement un //serveur// de bases de données. Pour s'y connecter localement ou à distance, on utilise un //client//. Il peut s'agir de la commande ''​mysql'',​ ou couramment d'un script [[:PHP]]. Il faudra dans ce cas installer le [[:​php#​association_avec_un_serveur_de_base_de_donnees|module]] [[apt>​php-mysql]] qui permet à PHP de communiquer avec un serveur MySQL. ​
Ligne 14: Ligne 13:
  
 L'​installation de ce paquet doit se faire de préférence en utilisant [[terminal]] via la commande :​ <​code>​sudo apt install mysql-server</​code>​ L'​installation de ce paquet doit se faire de préférence en utilisant [[terminal]] via la commande :​ <​code>​sudo apt install mysql-server</​code>​
-[[apt>​mysql-server]] est un [[:​tutoriel:​creer un meta paquet|méta-paquet]] qui installera MySQL 5.7 sur [[:​xenial|Xenial 16.04]] et sur [[:​bionic|Bionic 18.04]].+[[apt>​mysql-server]] est un [[:​tutoriel:​creer un meta paquet|méta-paquet]] qui installera MySQL 5.7 sur [[:​xenial|Xenial 16.04]] et sur [[:​bionic|Bionic 18.04]], MySQL 8.0 sur [[:​Focal|Focal 20.04]].
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 156: Ligne 155:
 CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED WITH mysql_native_password BY '​mot_de_passe_solide';​ CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED WITH mysql_native_password BY '​mot_de_passe_solide';​
 </​code>​ </​code>​
 +ou si cette commande échoue avec une erreur de syntaxe :
 +<code mysql>
 +CREATE USER '​nom_utilisateur_choisi'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe_solide';​
 +</​code>​
 +
  
 Ou pour créer un accès MySQL à un utilisateur Ubuntu (seulement dans le cadre d'une utilisation avancée, et si vous comprenez ce que vous faites) : Ou pour créer un accès MySQL à un utilisateur Ubuntu (seulement dans le cadre d'une utilisation avancée, et si vous comprenez ce que vous faites) :
Ligne 241: Ligne 245:
  
 Pour autoriser l'​accès venant de toutes machines (limité par l'​authentification),​ remplacer ''​[adresse IP]''​ par le symbole ''​%''​. Pour autoriser l'​accès venant de toutes machines (limité par l'​authentification),​ remplacer ''​[adresse IP]''​ par le symbole ''​%''​.
 +
 +Il est fortement conseillé que le ''​[nom utilisateur]''​ soit différent du nom d'​utilisateur connecté en local ''​[localhost]''​ pour éviter les blocages de connexion.
  
 Pour rendre ces modifications effectives, terminez par : Pour rendre ces modifications effectives, terminez par :
 <code mysql>​FLUSH PRIVILEGES;</​code>​ <code mysql>​FLUSH PRIVILEGES;</​code>​
 +
 +Cette modification des droits de l'​utilisateur (ou l'​ajout d'un nouvel utilisateur avec des droits différents) peut aussi se faire dans [[phpmyadmin|phpMyAdmin]].
  
 ==== Configuration en UTF-8 ==== ==== Configuration en UTF-8 ====
Ligne 331: Ligne 339:
 <code mysql> <code mysql>
 CREATE DATABASE application;​ CREATE DATABASE application;​
-GRANT ALL PRIVILEGES ​ON application.* TO 'application'​@'​localhost' IDENTIFIED BY '​mot_de_passe';+CREATE USER '​utilisateur'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​ 
 +GRANT ALL ON application.* TO 'utilisateur'​@'​localhost';​
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 QUIT; QUIT;
 </​code>​ </​code>​
  
-Il faut remplacer dans ces requêtes ''​application''​ par le nom de l'​application web (ou du site internetsans espace) et ''​mot_de_passe''​ par un vrai mot de passe complexe qu'on note : on devra renseigner ces identifiants lors de l'​installation de l'​application.+Il faut remplacer dans ces requêtes ''​application''​ par le nom de l'​application web ou du site internet ​(sans espace ​ni caractère spécial) , ''​utilisateur''​ par un nom d'​utilisateur (qui peut aussi être celui de l'​application,​ pour s'y retrouver facilement) et ''​mot_de_passe''​ par un vrai mot de passe complexe qu'on note : on devra renseigner ces identifiants lors de l'​installation de l'​application.
  
-On vient de créer la base de donnée //​application//​ à laquelle l'​utilisateur //application// aura accès.+On vient de créer la base de donnée //​application//​ à laquelle l'​utilisateur //utilisateur// aura accès.
  
 ==== Tables ==== ==== Tables ====
Ligne 360: Ligne 369:
 </​code>​ </​code>​
  
-Pour la syntaxe des requêtes SQL, reportez-vous à la [[http://​dev.mysql.com/​doc/​|documentation MySQL]].+Pour la syntaxe des requêtes SQL, reportez-vous à la [[https://​dev.mysql.com/​doc/​|documentation MySQL]].
  
 ===== Autres opérations ===== ===== Autres opérations =====
  
-Qt4 avec MySQL:+MySQL avec Qt5:
  
-Installer la librairie ​pour mysql afin de l'​utiliser sous QT :+Installer la bibliothèque Qt5 pour mysql afin de l'​utiliser sous Qt :
  
-<​code>​sudo apt install ​libqt4-sql-mysql</​code>​+<​code>​sudo apt install ​libqt5sql5-mysql</​code>​
  
  
Ligne 393: Ligne 402:
 </​note>​ </​note>​
  
-D'​autres commandes telles que la suppression des tables, de la base, l'​ajout des données dans la base des données, etc. peuvent être trouvées sur le [[http://​dev.mysql.com/​doc/​refman/​5.0/​fr/​sql-syntax.html|site de documentation de MySQL]].+D'​autres commandes telles que la suppression des tables, de la base, l'​ajout des données dans la base des données, etc. peuvent être trouvées sur le [[https://​dev.mysql.com/​doc/​refman/​5.0/​fr/​sql-syntax.html|site de documentation de MySQL]].
  
  
Ligne 403: Ligne 412:
 Pistes pour comprendre et corriger ce problème :  Pistes pour comprendre et corriger ce problème : 
   * [[http://​bytes.com/​groups/​mysql/​495219-mysql-ibdata1-compact-space|Supprimer les tables InnoDB pour récupérer l'​espace]]   * [[http://​bytes.com/​groups/​mysql/​495219-mysql-ibdata1-compact-space|Supprimer les tables InnoDB pour récupérer l'​espace]]
-  * [[http://​bugs.mysql.com/​bug.php?​id=1287|"​Bogue"​ associé]] +  * [[https://​bugs.mysql.com/​bug.php?​id=1287|"​Bogue"​ associé]] 
-  * Exporter toutes les bases de données, arrêter mysql, supprimer le fichier, démarrer ​sql et importer toutes les bases.+  * Exporter toutes les bases de données, arrêter mysql, supprimer le fichier, démarrer ​mysql et importer toutes les bases.
  
  
Ligne 422: Ligne 431:
 En cas de problème de configuration lors d'un premier déploiement d'un serveur MySQL on doit donc effectuer un certain nombre d'​opérations manuelles afin de réinitialiser complètement son installation. Attention cela rendra les bases de données existantes inaccessibles ! En cas de problème de configuration lors d'un premier déploiement d'un serveur MySQL on doit donc effectuer un certain nombre d'​opérations manuelles afin de réinitialiser complètement son installation. Attention cela rendra les bases de données existantes inaccessibles !
  
-<​code>​sudo apt autoremove --purge mysql-server\* mariadb-server\*+Pour Ubuntu avant 20.04 : 
 +<​code>​sudo apt autoremove --purge mysql-server\* mariadb-server\*</​code>​ 
 +À partir de Ubuntu 20.04 : 
 +<​code>​sudo apt autoremove --purge ~n^mysql-server ~n^mariadb-server</​code>​ 
 + 
 +Puis quelle que soit la version : 
 +<​code>​
 sudo mv /​var/​lib/​mysql /​var/​lib/​mysql.bak sudo mv /​var/​lib/​mysql /​var/​lib/​mysql.bak
 sudo mv /etc/mysql /​etc/​mysql.bak sudo mv /etc/mysql /​etc/​mysql.bak
-sudo mkdir /​etc/​mysql ​/​etc/​mysql/​conf.d+sudo mkdir -p /​etc/​mysql/​conf.d
 sudo apt clean</​code>​ sudo apt clean</​code>​
 On peut ensuite choisir d'​installer [[:MySQL]] ou [[:​MariaDB]] : On peut ensuite choisir d'​installer [[:MySQL]] ou [[:​MariaDB]] :
Ligne 437: Ligne 452:
  
 Consultez le journal de [[:​systemd]] : Consultez le journal de [[:​systemd]] :
-<​code>​journalctl -xe</​code>​+<​code>​journalctl -xe -u mysql</​code>​ 
 +et les logs dans /​var/​log/​mysql/​error.log
  
 === AppArmor === === AppArmor ===
Ligne 450: Ligne 466:
 Il faut ensuite redémarrer l'​ordinateur (redémarrer le service //​apparmor//​ ne suffit pas). Il faut ensuite redémarrer l'​ordinateur (redémarrer le service //​apparmor//​ ne suffit pas).
  
-==== Conflit entre MySQL et MariaDB ​====+==== Installation de MySQL impossible ==== 
 + 
 +=== Conflit entre MySQL et MariaDB ===
  
 Si vous rencontrez une erreur de ce type lors de l'​installation de MySQL : Si vous rencontrez une erreur de ce type lors de l'​installation de MySQL :
Ligne 461: Ligne 479:
  
 Il s'agit probablement d'un conflit entre MySQL et [[:​MariaDB]]. Le plus simple est de [[#​reinstallation_complete|réinstaller complètement MySQL]]. Il s'agit probablement d'un conflit entre MySQL et [[:​MariaDB]]. Le plus simple est de [[#​reinstallation_complete|réinstaller complètement MySQL]].
 +
 +Il est également possible que des fichiers [[:​systemd]] pour [[:​MariaDB]] persistent après une mauvaise désinstallation,​ et empêchent une nouvelle installation propre. Pour résoudre ce problème, suivez [[https://​askubuntu.com/​a/​1235833|cette procédure]].
  
 ===== Voir aussi ===== ===== Voir aussi =====
Ligne 466: Ligne 486:
   * [[https://​www.mysql.com/​|Le site officiel de MySQL]] [en]   * [[https://​www.mysql.com/​|Le site officiel de MySQL]] [en]
   * [[http://​www.mysql.fr/​|Le site officiel francophone]] [fr]   * [[http://​www.mysql.fr/​|Le site officiel francophone]] [fr]
-  * [[http://​www.system-linux.eu/​index.php?​category/​Mysql|Aller plus loin avec MySQL]] [fr]+  * [[https://​www.system-linux.eu/​index.php?​category/​Mysql|Aller plus loin avec MySQL]] [fr]
   * La page dédiée aux [[:​mysql_outils|outils MySQL]]   * La page dédiée aux [[:​mysql_outils|outils MySQL]]
   * [[:​greensql|GreenSQL : Pare-feu applicatif SQL]]   * [[:​greensql|GreenSQL : Pare-feu applicatif SQL]]
-  * [[http://​mysql.developpez.com/​|La section dédiée à MySQL sur Developpez.com]] [fr]+  * [[https://​mysql.developpez.com/​|La section dédiée à MySQL sur Developpez.com]] [fr]
   * La page des [[:​SGBD|systèmes de gestion de base de données]]   * La page des [[:​SGBD|systèmes de gestion de base de données]]
   * [[:​MariaDB]] -> Le serveur alternatif 100% compatible MySQL   * [[:​MariaDB]] -> Le serveur alternatif 100% compatible MySQL
  • mysql.1554991381.txt.gz
  • Dernière modification: Le 11/04/2019, 16:03
  • par 82.251.241.242