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
Prochaine révision Les deux révisions suivantes
mysql [Le 06/07/2018, 15:40]
krodelabestiole [Utilisateurs] Créer un utilisateur : notion de choix native / auth_socket explicitée
mysql [Le 06/01/2019, 13:41]
krodelabestiole [Conflit entre MySQL et MariaDB] lien interne à la page du coup
Ligne 14: Ligne 14:
  
 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]] et sur [[:​Bionic]].+[[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]].
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 48: Ligne 48:
 ==== Connaître la version ==== ==== Connaître la version ====
 Il est parfois utile de connaître la version installée:​\\ Il est parfois utile de connaître la version installée:​\\
-<​code>​mysqld ​--version</​code>​+<​code>​mysql --version</​code>​
  
 ===== Configuration ===== ===== Configuration =====
Ligne 63: Ligne 63:
   * //​auth_socket//​ pour se connecter avec un utilisateur Ubuntu.   * //​auth_socket//​ pour se connecter avec un utilisateur Ubuntu.
  
-Depuis [[:​Bionic]],​ Ubuntu lie par défaut le compte //root// de Ubuntu avec //​auth_socket//​ en installant MySQL. Auparavant il fallait spécifier un mot de passe lors de l'​installation. Cela a différents impacts sur les méthodes de travail. ((Voir [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=2027272|ce fil]] sur le forum pour plus d'​information au sujet des répercutions de l'​utilisation de //​auth_socket//​.))+Depuis [[:bionic|Bionic ​18.04]], Ubuntu lie par défaut le compte //root// de Ubuntu avec //​auth_socket//​ en installant MySQL. Auparavant il fallait spécifier un mot de passe lors de l'​installation. Cela a différents impacts sur les méthodes de travail. ((Voir [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=2027272|ce fil]] sur le forum pour plus d'​information au sujet des répercutions de l'​utilisation de //​auth_socket//​.))
  
 ==== Lancer la console MySQL ==== ==== Lancer la console MySQL ====
Ligne 104: Ligne 104:
  
 <note warning> <note warning>
-À partir de [[:Bionic]] il est vivement déconseillé de modifier la méthode d'​[[#​authentification]] par défaut de l'​utilisateur //root// (//​auth_socket//​). Le système utilise ce compte pour effectuer des tâches de maintenance (auparavant Ubuntu créait un compte spécial //​debian-sys-maint//​ à cette fin).+À partir de [[:bionic|Bionic ​18.04]] il est vivement déconseillé de modifier la méthode d'​[[#​authentification]] par défaut de l'​utilisateur //root// (//​auth_socket//​). Le système utilise ce compte pour effectuer des tâches de maintenance (auparavant Ubuntu créait un compte spécial //​debian-sys-maint//​ à cette fin).
  
 Si vous souhaitez créer un accès "​super-administrateur"​ pour gérer l'​intégralité de vos bases de données et de leurs utilisateurs avec une application tierce ([[:​phpMyAdmin]],​ [[mysql_outils#​adminer|Adminer]],​ ou autre), suivez [[phpmyadmin#​acces_root|cette autre procédure]]. Si vous souhaitez créer un accès "​super-administrateur"​ pour gérer l'​intégralité de vos bases de données et de leurs utilisateurs avec une application tierce ([[:​phpMyAdmin]],​ [[mysql_outils#​adminer|Adminer]],​ ou autre), suivez [[phpmyadmin#​acces_root|cette autre procédure]].
 </​note>​ </​note>​
  
-Pour changer ou attribuer un mot de passe ou l'​utilisateur root (qui n'est pas forcément le même que l'​utilisateur root du système) ou activer son authentification par mot de passe :+Pour changer ou attribuer un mot de passe ou l'​utilisateur root (qui n'est pas forcément le même que l'​utilisateur root du système) ou activer son authentification par mot de passe sur [[:​xenial|Xenial 16.04]] et précédents ​:
  
 Si vous êtes déjà connecté dans mysql : Si vous êtes déjà connecté dans mysql :
Ligne 124: Ligne 124:
 ==== Redéfinir de force le mot de passe de root ==== ==== Redéfinir de force le mot de passe de root ====
  
-<note important>​Ceci ne s'​applique que pour les versions n'​utilisant pas //​[[#​authentification|auth_socket]]//​ par défaut pour le compte //root//, donc [[:Xenial]] et les versions précédentes ([[:​Trusty]]).+<note important>​Ceci ne s'​applique que pour les versions n'​utilisant pas //​[[#​authentification|auth_socket]]//​ par défaut pour le compte //root//, donc [[:xenial|Xenial ​16.04]] et les versions précédentes ([[:trusty|Trusty ​14.04]]).
  
-Sur [[:Bionic]] MySQL n'​utilise pas de mot de passe pour le compte //root//. Il se sert du système d'​authentification des utilisateurs Ubuntu, et donc de [[:​sudo]].</​note>​+Sur [[:bionic|Bionic ​18.04]] MySQL n'​utilise pas de mot de passe pour le compte //root//. Il se sert du système d'​authentification des utilisateurs Ubuntu, et donc de [[:​sudo]].</​note>​
  
 Deux possibilités s'​offrent à vous. Une méthode simple : <​code>​sudo dpkg-reconfigure mysql-server-5.7</​code>​ Deux possibilités s'​offrent à vous. Une méthode simple : <​code>​sudo dpkg-reconfigure mysql-server-5.7</​code>​
Ligne 157: Ligne 157:
 </​code>​ </​code>​
  
-Ou pour créer un accès MySQL à un utilisateur Ubuntu :+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) ​:
 <code mysql> <code mysql>
 CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH auth_socket;​ CREATE USER '​nom_utilisateur'​@'​localhost'​ IDENTIFIED WITH auth_socket;​
Ligne 415: Ligne 415:
  
  
-==== Transférer une base de données entre deux serveurs via SSH ==== 
  
-=== Préambule ​===+   
 +===== Administrer MySQL via une une interface graphique =====
  
-Dans le cadre d'une infra sans serveur ​spécifique de base de données, et que l'on souhaite partager ​une base commune.+Il est possible ​d'administrer un serveur ​MySQL via une interface graphique avec par exemple [[:​phpMyAdmin]] ou [[:​mysql_outils#​adminer|Adminer]] qui sont d'excellentes applications web. D'​autres outils sont disponibles,​ vous en trouverez ​une liste non exhaustive sur la page [[:​mysql_outils|Outils MySQL]].
  
-=== Mise en place ===+===== Réinstallation complète =====
  
-Dans un premier temps il faut remplir deux conditions : +De nombreux paramètres du serveurs MySQL (tels que ses utilisateurs) sont stockés directement en base de données.
-  *  ​que l'​utilisateur de la base de données ​soit reconnu par le second serveur +
-  *  que l'​utilisateur de la base de données soit reconnu par les deux serveurs MySql.+
  
-Pour une reconnaissance utilisateur d'un serveur à un autre : [[ssh#​authentification_par_un_systeme_de_cles_publiqueprivee|Authentification par clés SSH]] (sans passphrase)+Ces bases de données ne seront jamais supprimées par [[:APT]] (et heureusement : on risquerait d'y perdre de précieuses données).
  
-Pour que MySql reconnaisse l'​utilisateur sans devoir saisir son mot de passe à chaque commande (dans le cas d'​un ​tâche [[cron|CRON]] par exemple), il faut ajouter ​un fichier dans le répertoire personnel de cet utilisateur et ce __**sur chaque ​serveur**__. [[tutoriel:​comment_editer_un_fichier|Éditer]]/​créer le fichier **~/.my.cnf**+En cas de problèmes 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 installationAttention cela rendra les bases de données existantes inaccessibles !
  
-<file> +<code>sudo apt autoremove --purge ​mysql-server\* mariadb-server\* 
-[mysql] +sudo mv /var/​lib/​mysql ​/var/​lib/​mysql.bak 
-user=nom_utilisateur +sudo mv /etc/mysql /​etc/​mysql.bak 
-password=mot_de_passe_utilisateur +sudo mkdir /etc/mysql /etc/mysql/​conf.d 
- +sudo apt clean</​code>​ 
-[mysqldump] +On peut ensuite choisir ​d'installer ​[[:MySQL]] ou [[:MariaDB]] : 
-user=nom_utilisateur +<​code>​sudo apt install mysql-server</​code>​ 
-password=mot_de_passe_utilisateur +**__ou__** 
-</file> +<​code>​sudo apt install mariadb-server</​code>​
-Protéger le : +
- +
-  chmod 600 ~/.my.cnf +
-   +
-Transférer depuis le serveur **A** vers le **B** : +
- +
-  mysqldump nom_bdd_serveur_A | ssh utilisateur_serveur_B@ip_serveur_B ​mysql nom_bbd_serveur_B +
-   +
-Exemple de commande en tache [[cron|CRON]] : +
- +
-  10 0 * * * mysqldump nom_bdd_serveur_A | ssh utilisateur_serveur_B@ip_serveur_B ​mysql nom_bbd_serveur_B >/dev/null  #Mise à jour BDD +
-   +
-===== Administrer MySQL via une une interface graphique ===== +
- +
-Il est possible ​d'administrer un serveur MySQL via une interface graphique avec par exemple ​[[:phpMyAdmin]] ou [[:mysql_outils#​adminer|Adminer]] qui sont d'​excellentes applications web. D'​autres outils sont disponibles,​ vous en trouverez une liste non exhaustive sur la page [[:mysql_outils|Outils MySQL]].+
  
 ===== Problèmes courants ===== ===== Problèmes courants =====
Ligne 484: Ligne 467:
 Upgrade process encountered error and will not continue.</​code>​ Upgrade process encountered error and will not continue.</​code>​
  
-Il s'agit probablement d'un conflit entre MySQL et [[:​MariaDB]]. ​Consultez ​[[:lamp#conflit_entre_mysql_et_mariadb|cette documentation]].+Il s'agit probablement d'un conflit entre MySQL et [[:​MariaDB]]. ​Le plus simple est de [[#reinstallation_complete|réinstaller complètement MySQL]].
  
-===== Liens =====+===== Voir aussi =====
  
   * [[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.addedbytes.com/​cheat-sheets/​mysql-cheat-sheet/​|Memento MySQL]] [en] 
   * [[http://​www.system-linux.eu/​index.php?​category/​Mysql|Aller plus loin avec MySQL]] [fr]   * [[http://​www.system-linux.eu/​index.php?​category/​Mysql|Aller plus loin avec MySQL]] [fr]
-  * [[http://​www.generation-linux.fr/​index.php?​post/​2007/​12/​17/​9-cours-mysql|En savoir plus sur les commandes Mysql]] [fr] -> 3 petits cours sur MySQL à télécharger (PDF) 
-  * [[http://​www.system-linux.eu/​index.php?​post/​2008/​12/​29/​Configure-et-Installation-de-mysql|Installation à la main]] [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://​www.system-linux.eu/​index.php?​post/​2009/​06/​28/​Proteger-son-server-Mysql-avec-GreenSQL|Protéger son serveur MySQL avec GreenSQL]] [fr] 
   * [[http://​mysql.developpez.com/​|La section dédiée à MySQL sur Developpez.com]] [fr]   * [[http://​mysql.developpez.com/​|La section dédiée à MySQL sur Developpez.com]] [fr]
-  * La page des [[:SGBD]].+  * 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
   * [[.:?​do=showtag&​tag=mysql|La liste des pages taguées avec MySQL]]   * [[.:?​do=showtag&​tag=mysql|La liste des pages taguées avec MySQL]]
  • mysql.txt
  • Dernière modification: Le 10/01/2024, 06:35
  • par krodelabestiole