- Prérequis
J’ai installé mon serveur avec les éléments suivants :
- Une machine sous debian-6.0.6-amd64
- Une interface de virtualisation VMWare
- Une adresse IP statique
- Liste de paquet mis à jour (sources.list)
2. Installation
Avant de commencer à faire toutes installation, il faut faire un apt-get upgrade & update. Il faut ensuite installer les paquets suivants grâce à la commande apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common php5-mysql
3. Configuration
Étant donné que la configuration principe de notre serveur de base de données se trouve dans le fichier my.cnf, on va y aller dans le but de changer quelques paramètres pour optimiser notre base de données. nano /etc/mysql/my.cnf
Voici quelques options intéressantes à modifier par défaut :
- language = /usr/share/mysql/french
- Choisir la langue par défaut pour les messages du serveur (français)
- key_buffer = 32M
- Taille du cache des index
- query_cache_limit = 2M
- Taille limite du cache par requête
- query_cache_size = 32M
- Taille totale du cache des requêtes
- #log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10 - Désactiver le log binaire en commentant ces deux lignes grâce à # (le log binaire n’est utile que dans le cas de réplications avec serveurs maître-esclave)
- log_slow_queries = /var/log/mysql/mysql-slow.log
- Mettre en log les requêtes lentes (utile pour les repérer et les optimiser)
- long_query_time = 2
- Durée (en secondes) à partir de laquelle une requête est considérée comme lente
[mysqld]
- default-character-set = utf8
- Jeu de caractères par défaut pour le serveur
- default-collation = utf8_general_ci
- Collation du jeu de caractères
[client]
- default-character-set = utf8
- Jeu de caractères par défaut pour le client
- Redémarrer se serveur grâce à la commande /etc/init.d/mysql reload ou service mysql restart.
- 4. Démarrage
- Lancer la commande mysql -u(login) -p(motdepasse). Dans mon cas la commande est mysql -u root -p azerty.
- Et voila ! on a un serveur SQL qui est fonctionnel. Mais comme votre tâche ne s’arrêtera s’arrêtera surement pas la comme la mienne je vais vous montrer quelques commandes utiles.
- Ne Jamais oublier le ; a la fin d’une requête dans MySQL
- 5. Commandes utiles
* Voir la liste de base de données : SHOW DATABASES;
- * Créer une base de données : CREATE DATABASE nom_base;
- * utiliser une base de donnée précise : USE nom_base;
- * affiche la liste de table d’une base de donnée sélectionnée : SHOW TABLES;
- * Afficher le statut du serveur : SHOW STATUS;
- * Décrire les attributs d’une table : DESCRIBE nom_table;
- * Créer un utilisateur : CREATE USER user@’localhost’ IDENTIFIED BY ‘password;
- * Donner des privilèges à un utilisateur sur un bd en fonction de vos besoins :
- – GRANT ALL PRIVILEGES on test.* to user@’%’;
- – GRANT SELECT,INSERT,UPDATE,DELETE on test.* to user@’%’ identified by ‘user’;
- – GRANT ALL PRIVILEGES on *.* to user@’%’ identified by ‘user’;
- * Appliquer les privilèges : FLUSH PRIVILEGES;
- – Lister les utilisateurs créé dans pphpmyadmin :
SELECT user FROM mysql.user GROUP BY user; - Supprimer un utilisateur de phpmyadmin : DELETE FROM mysql.user WHERE user = 'www';
vous pouvez accéder a votre serveur SQL en local mais pas de l’extérieur ( une autre machine dans le même réseau ou à l’extérieur) .
Pour contourner ce problème il faut se rendre dans le fichier de conf my.cnf : nano /etc/mysql/my.cnf ; ensuite il faut rechercher la ligne ou il y’a écrit bind- adress=127.0.0.1 et la remplacer par bind-address=0.0.0.0
Redémarrer se serveur grâce à la commande /etc/init.d/mysql reload ou service mysql restart.
Mais attention, votre serveur est désormais accessible partout ! il faut donc pour cela mettre un petit script de filtrage en fonction nos besoins :
– /sbin/iptables -A INPUT -i eth0 -s 192.168.1.1 -p tcp –destination-port 3306 -j ACCEPT (Pour donner l’accès à une seule IP qui peut être le server Web par exemple)
– /sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp –destination-port 3306 -j ACCEPT ( Pour donner l’accès à une plage d’adresse ip donnée)
C’est terminé pour mon premier tuto, vous avez enfin un serveur en place et complètement opérationnel.