Modèle:Installation du serveur mysql
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 Robust 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/Robust |
Faire un lien symbolique
avec le dossier /var/lib/ |
sudo ln -s /home/Robust/mysql /var/lib/mysql |
Donner les droits au dossier mysql |
sudo chown -h mysql:mysql /home/Robust/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/Robust/mysql/ r, /home/Robust/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
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