Différences
Ci-dessous, les différences entre deux révisions de la page.
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 installation. Attention 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]] |