« Installation et configuration de MySQL » : différence entre les versions

Aller à la navigation Aller à la recherche
 
(10 versions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
=Installation et configuration=
=Installation et configuration=


Pour installer mysql, tapez :
Pour installer le serveur mariadb, tapez :
<pre>aptitude install mariadb-server mariadb-client</pre>
<pre>aptitude install mariadb-server mariadb-client</pre>


Puis lancez
Puis lancez
<pre>mysql_secure_installation</pre>
<pre>mysql_secure_installation</pre>
Mariadb recommande d'éviter au maximum l'[https://mariadb.com/kb/en/configuring-swappiness/ utilisation du swap]. Définissez la ligne suivante par exemple dans <code>/etc/sysctl.d/local.conf</code> :
<pre>vm.swappiness = 1</pre>


==Changement du datadir==
==Changement du datadir==
Ligne 19 : Ligne 22 :
Copiez l'ancien répertoire de la base de donnée au nouvel emplacement et attribuez lui les bons privilèges :
Copiez l'ancien répertoire de la base de donnée au nouvel emplacement et attribuez lui les bons privilèges :
<pre>
<pre>
cp -R /var/lib/mysql/ /srv/
rsync -av /var/lib/mysql/ /srv/mysql/
chown -R  mysql /srv/mysql
chgrp -R  mysql /srv/mysql
</pre>
</pre>


Ligne 29 : Ligne 30 :
</pre>
</pre>


Si mysql refuse de démarrer, c'est probablement un problème de permission. Le dossier mysql et tous les sous dossiers présent dans <code>/srv/mysql</code> doivent appartenir à <code>mysql:mysql</code> et avoir les permissions <code>rwxr-x---</code>
Si mysql refuse de démarrer, c'est probablement un problème de permission.


Par défaut sous debian, mysql ne bind qu'en local. Si vous souhaitez écouter sur une ip autre (attention aux problèmes de sécurité que cela peut poser !), éditez la ligne suivante dans le fichier <code>/etc/mysql/mariadb.conf.d/50-server.cnf</code> :
=Servir des requêtes sur le réseau=
 
Par défaut sous debian, mysql/mariadb n'écoute que sur localhost. Si vous souhaitez écouter sur une ip autre (attention aux problèmes de sécurité que cela peut poser !), éditez la ligne suivante dans le fichier <code>/etc/mysql/mariadb.conf.d/50-server.cnf</code> :
<pre>bind-address            = 192.168.50.5</pre>
<pre>bind-address            = 192.168.50.5</pre>


=Le login root de MySQL=
=Le login root de MySQL=


Après avoir lancé <code>mysql_secure_installation</code> vous avez du définir un mot-de-passe root et désactiver le login extérieur root.
Après avoir lancé <code>mysql_secure_installation</code> vous avez probablement du définir un mot-de-passe root et désactivé le login extérieur avec l'utilisateur mysql root.


Par défaut sous debian Buster, mariadb log l'utilisateur root avec le socket unix, sans mot-de-passe nécessaire :
Par défaut sous Debian Buster, mariadb log l'utilisateur root avec le socket unix, sans mot-de-passe nécessaire :
<pre>mysql -u root</pre>
<pre>mysql -u root</pre>


Ligne 52 : Ligne 55 :
<pre>mysql -u root -p</pre>
<pre>mysql -u root -p</pre>


Éventuellement, vous pouvez stocker le mot-de-passe root comme ceci dans <code>/root/.my.cnf</code> :
Je vous recommande également d'entrer le mot-de-passe root que vous avez défini dans <code>/etc/mysql/debian.cnf</code> sinon certains scripts risquent de ne plus fonctionner. Anciennement, debian créait un utilisateur debian-sys-maint à cet usage, ce n'est plus le cas depuis debian 9 qui configuré désormais l'utilisateur root à cet usage dans <code>/etc/mysql/debian.cnf</code> et parfois dans <code>/etc/dbconfig-common/*</code>
 
Éventuellement, vous pouvez stocker le mot-de-passe root comme ceci dans <code>/root/.my.cnf</code> (veillez bien à ce que ce fichier ne soit lisible que par l'utilisateur unix root) :
<pre>
<pre>
[client]
[client]
Ligne 60 : Ligne 65 :
</pre>
</pre>


Pour revenir à la configuration "sans login root", dans la console mysql :
Si vous souhaitez revenir à la configuration "passwordless" pour l'utilisateur root, tapez dans la console mysql :
<pre>use mysql; update user set plugin='unix_socket' where user='root'; flush privileges;</pre>
<pre>use mysql; update user set plugin='unix_socket' where user='root'; flush privileges;</pre>


4 203

modifications

Menu de navigation