3 - Installation et configuration de MySQL sous Linux
Mise en place d'un serveur MySQL, optimisation et recommandations
3.1 MySQL et son installation
MySQL est le serveur de bases de données le plus répandu pour les serveurs web. Il allie une grande souplesse d'utilisation et de nombreuses fonctionnalités, tandis que sa mise en œuvre reste simple.
Installation
Grâce à APT nous installons les paquets correspondants :
Configuration
La configuration de base est stockée dans /etc/mysql/my.cnf
Voici quelques options intéressantes à modifier par défaut
[mysqld]
Jeu de caractères par défaut pour le serveur
Collation du jeu de caractères
[client]
Jeu de caractères par défaut pour le client
N'oubliez pas de recharger le serveur suite à ces modifications :
Optimisation
Si vous désirez optimiser cette configuration (après l'avoir exploitée, les statistiques n'étant pas représentatives au départ), faites appel à MySQLTuner. Il s'agit d'un script écrit en Perl qui ne modifiera pas votre configuration mais vous proposera des améliorations.
Sécurisation
Il est facile de mettre en place quelques règles simples pour sécuriser le serveur, grâce au script :
Et en répondant à quelques questions :
3.2 Connexion
Vous pourrez vous connecter en ligne de commande grâce au client :
Ou bien en utilisant un client graphique, voire aussi phpMyAdmin (installation par défaut : apt-get install phpmyadmin puis éditez config.inc.php ou recopiez-le à partir de config.sample.inc.php)
3.3 Commandes shell utiles
L'option
Référez-vous à la documentation (man mysqldump) pour plus de renseignements.
3.4 Commandes de base en ligne de commande MySQL (client)
Terminez toutes vos commandes avec le caractère point-virgule ;
Pour avoir toutes les commandes à portée de la main, n'oubliez pas le Memento MySQL aux éditions Eyrolles
Au sommaire :
Création d'une base de tables
Connexion à une base de données
Renommer/supprimer bases, tables et clés
Type de champs
Type d'index (clés)
Gestion des utilisateurs
Modifier la structure d'une table
Requêtes
Requêtes conditionnelles avec WHERE
Déclencheurs (TRIGGER)
Groupage et tri
Fonctions mathématiques
Unions et jointures
Fonctions diverses
Manipulation de chaînes de caractères
Fonctions de dates
Procédures stockées et fonctions
Transactions
Vues
Administration et performances
Variables serveur
Sources: alsacrea
Mise en place d'un serveur MySQL, optimisation et recommandations
3.1 MySQL et son installation
MySQL est le serveur de bases de données le plus répandu pour les serveurs web. Il allie une grande souplesse d'utilisation et de nombreuses fonctionnalités, tandis que sa mise en œuvre reste simple.
Installation
Grâce à APT nous installons les paquets correspondants :
Code:
apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common
La configuration de base est stockée dans /etc/mysql/my.cnf
Code:
vi /etc/mysql/my.cnf
Code:
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
Code:
default-character-set = utf8
Code:
default-collation = utf8_general_ci
[client]
Code:
default-character-set = utf8
N'oubliez pas de recharger le serveur suite à ces modifications :
Code:
/etc/init.d/mysql reload
Optimisation
Si vous désirez optimiser cette configuration (après l'avoir exploitée, les statistiques n'étant pas représentatives au départ), faites appel à MySQLTuner. Il s'agit d'un script écrit en Perl qui ne modifiera pas votre configuration mais vous proposera des améliorations.
Code:
wget http://mysqltuner.com/mysqltuner.pl chmod +x mysqltuner.pl ./mysqltuner.pl
Il est facile de mettre en place quelques règles simples pour sécuriser le serveur, grâce au script :
Code:
mysql_secure_installation
Code:
Set root password ? Y Permet de modifier le mot de passe root (de mysql) Remove anonymous users ? Y Retire les accès anonymes Disallow root login remotely ? Y Retire l'accès root distant (recommandé) Remove test database and access to it ? Y Retire la base test et ses accès Reload privilege tables now ? Y Recharge les privilèges suite aux modifications
3.2 Connexion
Vous pourrez vous connecter en ligne de commande grâce au client :
Code:
mysql -ulogin -pmotdepasse
3.3 Commandes shell utiles
Code:
mysqldump -ulogin -pmotdepasse nom_base --opt >fichier.sql Exporte la base nom_base vers fichier.sql mysqldump -ulogin -pmotdepasse --all-databases --opt >fichier.sql Exporte toutes les bases vers fichier.sql mysql -ulogin -pmotdepasse <fichier.sql Importe les instructions du fichier SQL mysqladmin Toute une collection d'outils pour administrer le serveur.
Code:
--opt combine --add-drop-table --add-locks --all --extended-insert --quick --lock-tables
3.4 Commandes de base en ligne de commande MySQL (client)
Terminez toutes vos commandes avec le caractère point-virgule ;
Code:
SHOW DATABASES Liste les bases de données SHOW STATUS Affiche le statut du serveur USE nom_base Sélectionne la base par défaut SHOW TABLES Affiche les tables de la base courante DESCRIBLE table Affiche la structure de la table SELECT * FROM table Affiche le contenu de la table CREATE DATABASE base Crée une nouvelle base de données
Au sommaire :
Création d'une base de tables
Connexion à une base de données
Renommer/supprimer bases, tables et clés
Type de champs
Type d'index (clés)
Gestion des utilisateurs
Modifier la structure d'une table
Requêtes
Requêtes conditionnelles avec WHERE
Déclencheurs (TRIGGER)
Groupage et tri
Fonctions mathématiques
Unions et jointures
Fonctions diverses
Manipulation de chaînes de caractères
Fonctions de dates
Procédures stockées et fonctions
Transactions
Vues
Administration et performances
Variables serveur
Sources: alsacrea