MySQL - Free

Transcription

MySQL - Free
Travaux pratiques :
MySQL
L'équipe du Laboratoire SUPINFO
des Technologies GNU/Linux
Révision datée du 24-05-2007
Copyright © 2006 SUPINFO
All rights reserved.
Table des matières
1. Mettre en place un gestionnaire de base de données avec MySQL ................................................................................... 1
1.1. LAMPavec phpMyAdmin ............................................................................................................................. 1
1.2. Mysql Cluster ............................................................................................................................................. 2
1.2.1. Installation ...................................................................................................................................... 3
1.2.2. Mise en place du Manager NDB .......................................................................................................... 4
1.2.3. Configuration d'un noeud de stockage ................................................................................................... 4
1.2.4. Frontal MySQL ................................................................................................................................ 5
1.2.5. Utilisation ....................................................................................................................................... 6
1
Chapitre 1. Mettre en place un
gestionnaire de base de données
avec MySQL
Table des matières
1.1. LAMPavec phpMyAdmin ..................................................................................... 1
1.2. Mysql Cluster ..................................................................................................... 2
1.2.1. Installation .......................................................................................................... 3
1.2.2. Mise en place du Manager NDB .............................................................................. 4
1.2.3. Configuration d'un noeud de stockage ....................................................................... 4
1.2.4. Frontal MySQL .................................................................................................... 5
1.2.5. Utilisation ........................................................................................................... 6
1.1. LAMPavec phpMyAdmin
Le but de ce TP est de mettre en place un serveur LAMP (Linux, Apache, MySQL, PHP).
Avertissement
Attention si vous avez déjà des fichiers de configuration d'apache sauvegarder
les.
Q:
Installez le serveur MySQL ainsi que le module php5 pour Apache qui sont contenus dans les paquets MySQL-Max, apache-mod_php et php-mysql :
R:
urpmi.update -a
urpmi MySQL-Max apache-mod_php php-mysql
Q:
Vérifiez alors le fichier /etc/httpd/modules.d/70_mod_php.conf
Q:
Créez une page index.php qui va contenir la fonction phpinfo();
R:
echo "<? phpinfo(); ?>" > /var/www/html/index.php
Mettre en place un gestionnaire de base de
données avec MySQL
2
Q:
Modifiez le mot de passe de root sur le serveur :
R:
mysqladmin -u root password mysql
Q:
Installez maintenant le package phpmyadmin :
R:
urpmi phpmyadmin
Q:
Visualisez le fichier du virtual host de phpmyadmin se trouvant dans
etc/httpd/conf/webapps.d/phpMyAdmin.conf pour trouver l'adresse URL.
/
R:
http://127.0.0.1/phpMyAdmin
Q:
Connectez vous sur votre phpmyadmin pour vérifier son fonctionnement
1.2. Mysql Cluster
Ce TP s'effectue par groupe de deux, l'un faisant office de serveur maître, l'autre jouant le rôle
de l'esclave.
Figure 1.1. Schéma théorique du cluster MySQL
Mettre en place un gestionnaire de base de
données avec MySQL
1.2.1. Installation
Pour faire ce TP vous devrez installer les packages suivant :
urpmi.update -a
urpmi MySQL-Max MySQL-ndb-storage MySQL-ndb-management MySQL-ndb-tools
3
Mettre en place un gestionnaire de base de
données avec MySQL
Si vous n'utilisez pas Mandriva vous pouvez télécharger la version MySQLMax sur le site
mysql.com1
1.2.2. Mise en place du Manager NDB
Le manager NDB est le serveur de configuration. C'est lui qui va initialiser la connexion entre
les noeuds de stockage et les serveurs frontaux. Il va aussi définir le nombre de replicats et
l'espace disque alloué. Ce service ne demande que très peu de ressource. Il sera donc installer
sur le même serveur physique qu'un des noeud de stockage.
Q:
Il faut éditer le fichier /var/lib/mysql-cluster/config.ini afin de l'adapter à votre
architecture.
R:
## Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]
NoOfReplicas=2
# Number of replicas
DataMemory=80M
# How much memory to allocate for data storage
IndexMemory=18M
# How much memory to allocate for index storage
#
## Management process options:
[NDB_MGMD]
hostname=10.1.78.242
# Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node logfiles
#
## Options for data node "A":
[NDBD]
# (one [NDBD] section per data node)
hostname=10.1.78.243
# Hostname or IP address
datadir=/var/lib/mysql-cluster # Directory for this data node's datafiles
#
## Options for data node "B":
[NDBD]
hostname=10.1.78.244
# Hostname or IP address
datadir=/var/lib/mysql-cluster # Directory for this data node's datafiles
#
## SQL node options:
[MYSQLD]
hostname=10.1.78.245
[MYSQLD]
hostname=10.1.78.246
Q:
Lancez maintenant le manager NDB :
R:
/etc/init.d/mysqld-ndb_mgmd start
1.2.3. Configuration d'un noeud de stockage
1
http://mysql.com
4
Mettre en place un gestionnaire de base de
données avec MySQL
Comme son nom l'indique le serveur de stockage ndb ne s'occupe que de l'intégrité des données et des réplications entre serveurs. Si un noeud n'est pas à jour, il se synchronisera automatiquement.
Q:
Modifiez le fichier /etc/my.cnf du premier noeud de stockage pour qu'il se connecte au manager (décommentez les lignes ne les rajoutez pas) :
R:
........
[mysql_cluster]
# IP address of the cluster management node
ndb-connectstring=10.1.78.242
........
Q:
Lancez maintenant le noeud de stockage :
R:
/etc/init.d/mysqld-ndbd start
Faites la même démarche pour le second noeud de stockage.
1.2.4. Frontal MySQL
Le frontal est un simple serveur MySQL comme d'habitude. Il va gérer les connections et les
requetes. Seulle différence, les données ne sont pas en locale, mais sur les noeuds ndb. C'est
pour cette raison qu'en production il est conseillé d'avoir un réseau en 1G/s.
Q:
Modifiez le fichier de configuration /etc/my.cnf du serveur frontal pour qu'il se connecte au
manager (décommentez les lignes ne les rajoutez pas) :
R:
.......
[mysqld]
ndbcluster
# IP address of the cluster management node
ndb-connectstring=10.1.78.242
.......
Q:
Lancez enfin le serveur frontal :
R:
5
Mettre en place un gestionnaire de base de
données avec MySQL
/etc/init.d/mysqld-max start
1.2.5. Utilisation
Dans cette partie nous allons créer une base de données et la remplir de quelques données de
tests :
Q:
Modifiez le mot de passe root sur le serveur
R:
mysqladmin -u root password mysql
Q:
Connectez vous sur le serveur
R:
mysql -u root -p
Enter password :
Q:
Créez une base de données appelée linuxlab
R:
CREATE DATABASE linuxlab;
USE linuxlab;
Q:
Créez une table qui sera répliquée et insérez quelques données.
Note
Pour indiquer qu'une table devra etre répliquée sur le cluster. Il suffit d'ajouter ENGINE=NBCLUSTER à la fin de l'instruction CREATE TABLE.
6
Mettre en place un gestionnaire de base de
données avec MySQL
R:
CREATE TABLE cours (id_cours INT, name VARCHAR(255)) ENGINE=NDBCLUSTER;
INSERT INTO cours VALUES (1,'cours mysql');
Q:
Depuis le serveur MGMD, listez tous les noeuds de stockage et tous les serveurs frontaux disponibles à l'aide de l'utilitaire ndb_mgm et de la commande SHOW.
R:
root@localhost ~ # ndb_mgm
Connected to Management Server at: 10.1.78.242:1186
NDB> SHOW
Cluster Configuration
--------------------[ndbd(NDB)]
2 node(s)
id=2
@10.1.78.243 (Version: 5.0.24, starting, Nodegroup: 0)
id=3 (not connected, accepting connect from 10.1.78.244)
[ndb_mgmd(MGM)]
1 node(s)
id=1
@10.1.78.242 (Version: 5.0.24)
[mysqld(API)]
1 node(s)
id=4 (not connected, accepting connect from any host)
7