Modèle:Installation du serveur mysql pour un simulateur

De OSWiki
Aller à la navigation Aller à la recherche

Installation du serveur MySQL

MySQL est un Système de Gestion de Base de Données (SGBD) utilisé par OpenSimulator. SQLite est le SGBD par défaut des simulateurs OpenSim et vous pouvez utiliser cette solution pour vous simplifier la vie et ainsi éviter l'installation de MySQL. Toutefois, MySQL est beaucoup plus rapide et plus fiable que SQLite. En dehors d'un test et d'une utilisation dilettante d'OpenSimulator, il est préférable d'utiliser MySQL.

Si vous voulez installer plusieurs simulateurs, il faudra créer une base de données par simulateur.

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 de la machine ou sera installé le simulateur, 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 OpenSim 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/OpenSim
Faire un lien symbolique

avec le dossier /var/lib/

sudo ln -s /home/OpenSim/mysql /var/lib/mysql
Donner les droits au dossier mysql
sudo chown -h mysql:mysql /home/OpenSim/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/OpenSim/mysql/ r,
/home/OpenSim/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 du simulateur>;
  • Créer un utilisateur pour la base de données :
CREATE USER "<Nom de l'utilisateur de la bdd du simulateur>"@"localhost";
  • Créer le mot de passe de l'utilisateur.
SET password FOR "<Nom de l'utilisateur de la bdd du simulateur>"@"localhost" = password('<mot de passe>');

ou pour MySQL 8.0 ou supérieur :

SET password FOR "<Nom de l'utilisateur de la bdd du simulateur>"@"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 du simulateur>"@"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 OpenSim.
cd /OpenSim
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 OpenSim/.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