« Modèle:Installation du serveur mysql » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Ligne 14 : Ligne 14 :
{{Modèle:déplacement du dossier MySQL}}
{{Modèle:déplacement du dossier MySQL}}


{{Modèle:Création de la base de données|Type|Domaine=localhost}}
{{Modèle:Création de la base de données|Type=grille|Domaine=localhost}}


{{Modèle:Protection des mots depasses Mysql|TypeMaj}}
{{Modèle:Protection des mots depasses Mysql|Type=Grille}}


===Configurations particulières de MySQL===
===Configurations particulières de MySQL===

Version du 16 décembre 2017 à 15:38

Installation du serveur MySQL

MySQL est un Système de Gestion de Base de Données (SGBD) utilisé par OpenSimulator. Il n'est pas possible d'utiliser SQLite pour une grille OpenSimulator. SQLite est le SGBD par défaut des simulateurs OpenSim.

Nous allons voir comment installer MySQL, déplacer son dossier et protéger les mots de passe des bases de données.

Installation du paquet MySQL

Dans le terminal du serveur de grille taper la commande (vous devez avoir les droits d'administration de votre machine) :

sudo apt-get install mysql-server 

Un mot de passe vous sera demandé pour le serveur de bases de données. Reportez ce mot de passe dans le tableau des mots de passe.

Vous pouvez créer ce tableau pour l'ensemble des mots de passe de votre installation. Il ne doit pas être publié sur internet.

Déplacement du dossier MySQL

But : utiliser l'espace disque de {{Modèle:{{{Type}}} user}} pour préserver l'espace disque du système.

Attention, suivez bien les indications données ci-dessous pour ne pas casser votre installation. Cette opération est faculative.

Normalement les bases de données sont dans /var/lib/mysql/.

Arrêter le serveur MySQL
sudo service mysql stop
Créer une copie du dossier

mysql avec les mêmes droits

sudo cp -aR /var/lib/mysql  /var/lib/mysql_old
Déplacer le dossier mysql dans /home/
sudo mv /var/lib/mysql /home/{{Modèle:{{{Type}}} user}}
Faire un lien symbolique

avec le dossier /var/lib/

sudo ln -s /home/{{Modèle:{{{Type}}} user}}/mysql /var/lib/mysql
Donner les droits au dossier mysql
sudo chown -h mysql:mysql /home/{{Modèle:{{{Type}}} user}}/mysql
Éditer le fichier

/etc/apparmor.d/usr.sbin.mysqld

sudo nano /etc/apparmor.d/usr.sbin.mysqld
Remplacer
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

par

/home/{{Modèle:{{{Type}}} user}}/mysql/ r,
/home/{{Modèle:{{{Type}}} user}}/mysql/** rwk,
Recharger appamor
sudo service apparmor reload
Relancer le serveur MySQL
sudo service mysql start

Création de la base de données

  • Se connecter à MySQL depuis un terminal en mode administrateur.
mysql -u <utilisateur> -p 

Il n'est plus nécessaire de renseigner le mot de passe mais il faut par contre lancer la commande mysql avec l'utilisateur correspondant.

  • Depuis l'invite MySQL, créer une base de données.
CREATE DATABASE <Nom de la bdd de la grille>;
  • Créer un utilisateur pour la base de données :
CREATE USER "<Nom de l'utilisateur de la bdd de la grille>"@"localhost";
  • Créer le mot de passe de l'utilisateur.
SET password FOR "<Nom de l'utilisateur de la bdd de la grille>"@"localhost" = password('<mot de passe>');

ou pour MySQL 8.0 ou supérieur :

SET password FOR "<Nom de l'utilisateur de la bdd de la grille>"@"localhost" = '<mot de passe>';
  • Donner tous les droits sur la base de données à l'utilisateur :
GRANT ALL ON <nom_bdd>.* TO "<Nom de l'utilisateur de la bdd de la grille>"@"localhost";
  • Quitter MySQL
quit

Autre solution

Vous pouvez utiliser Phpmyadmin, interface graphique de connexion à Mysql. Mais cette solution est moins sécurisée.

Pour aller plus loin

Commandes Mysql utiles

Protection des mots de passes

Rôle Permettre la connexion directe des scripts bash à une base de donnée sans afficher le mot de passe en clair.

Dans ce cas le mot de passe fait partie des options et ne doit pas être appelé dans les scripts. On peut

choisir un utilisateur et mot de passe identiques pour tous les bdd des simulateurs pour ne pas utiliser root.

Installation Ajouter le fichier .my.cnf dans Robust.
cd /Robust
nano .my.cnf
Contenu
<source lang="vim">
[client] 
host  = localhost 
user = <user>
password = *********** 
socket   = /var/run/mysqld/mysqld.sock 
</source>
<user>

Utilisateur qui a le droit de se connecter à la base de données

password Mot de passe de l'utilisateur de la base de données
Droits sur le fichier chmod 600 Robust/.my.cnf
Mot de passe voir le tableau des mots de passe.

Configurations particulières de MySQL

Connexion à une base de données distante

But : communiquer avec votre base de données depuis un serveur distant, c'est à dire depuis une machine autre que celle où est installée le serveur de base de données. Cette configuration est facultative, ne modifiez rien si vous n'en n'avez pas l'utilité.

  • Installation :

Dans le fichier /etc/mysql/my.cnf remplacer bind-address 127.0.0.1 par bind-address 0.0.0.0

  • Redémarrer le service :
service mysql restart

Quelques commandes de gestion de Mysql

Page des commandes utiles