Annonce

Réduire
Aucune annonce.

[Serveur dédié] 3 - MySQL : les bases de données

Réduire
Ceci est une discussion importante.
X
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel [Serveur dédié] 3 - MySQL : les bases de données

    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 :

    Code:
    apt-get install mysql-server mysql-client libmysqlclient15-dev mysql-common
    Configuration

    La configuration de base est stockée dans /etc/mysql/my.cnf

    Code:
    vi /etc/mysql/my.cnf
    Voici quelques options intéressantes à modifier par défaut

    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
    [mysqld]

    Code:
    default-character-set = utf8
    Jeu de caractères par défaut pour le serveur
    Code:
    default-collation = utf8_general_ci
    Collation du jeu de caractères

    [client]

    Code:
    default-character-set = utf8
    Jeu de caractères par défaut pour le client

    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
    Sécurisation

    Il est facile de mettre en place quelques règles simples pour sécuriser le serveur, grâce au script :

    Code:
    mysql_secure_installation
    Et en répondant à quelques questions :

    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
    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

    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.
    L'option
    Code:
    --opt combine --add-drop-table --add-locks --all --extended-insert --quick --lock-tables
    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 ;
    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
    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


    Suivre Hackademics: Twitter, Google+, Facebook.
Chargement...
X