MySql

Mysql est une application client-serveur de base de données SQL (SGBD)
  • Installation
  • Commandes

    Installation
    groupadd mysql et useradd -g mysql mysql
    Installez mysql dans /usr/local avec ./configure --prefix=/usr/local/mysql
    ln -s /usr/local/mysql.3.23.X /usr/local/mysql
    puis make et make install
    strip /usr/local/mysql/libexec/mysqld (permet un gain de performances)
    /usr/local/mysql/scripts/mysql_install_db (lance un script qui crée la base de données initiale de mysql)
    chmod +x /usr/local/mysql/support-files/mysql.server start
    /usr/local/mysql/support-files/mysql.server start (mysql est lancé)
    ou /usr/local/mysql/bin/safe_mysqld &
    /usr/local/mysql/bin/mysqladmin -u root password 'votre_mot_de_passe'
    Pour vérifier si le serveur fonctionne: /usr/local/mysql/bin/mysqladmin -p ping
    /usr/local/mysql/bin/mysql -u root -p mysql (tapez le mot de passe défini précedement)
    Pour créer un nouvel utilisateur avec des privilèges:
    mysql>grant alter,create,delete,drop,index,insert,select,update
    ->on essai.* to fab@localhost
    ->identified by 'mot_de_passe';
    Pour supprimer les privilèges:
    mysql>revoke all on essai.* from fab@localhost;
    Pour supprimer un utlisateur:delete from user where user='fab';
    flush privileges; (permet de recharger les tables de permission)
    Pour voir si la saisie s'est bien passée: mysql> select * from user;
    /usr/local/mysql/bin/mysql -u fab -p
    évidemment pour stopper le serveur mysql,il suffit de remplacer start par stop
    Pour connaitre la version de mysql:select version();
    Pour lancer mysql automatiquement au démarrage:
    ln -s /usr/local/mysql/bin/mysql.server /etc/rc.d/rcX.d/S99mysql
    Pour installer d'autres serveurs sur la même machine:
    ./configure avec les options suivantes:
    --with-tcp-port=port_number (ex.3307)
    --with-unix-socket-path=file_name (ex./tmp/mysql-new.sock)
    --prefix=/usr/local/mysql-new
    ./safe_mysql --port=3307 & (--socket=/tmp/mysql-new.sock)

    Commandes
    Pour voir les bases de données disponibles:mysql> show databases;
    Pour créer une base de données: create database essai;
    Pour supprimer une base de données: drop database essai;
    Pour savoir si une base est chargée: select database();
    Pour charger une base de données: use essai;
    Pour créer une table:
    mysql>create table agenda (
    ->code int not null,
    ->nom char(10),
    ->prenom char(10),
    ->primary key(code_pers)
    ->);
    Pour supprimer une table: drop table agenda;
    Pour visualiser les tables disponibles dans une base: show tables (from mysql);
    Pour avoir des infos sur les champs d'une table: describe agenda;
    Pour changer le nom d'une table: alter table agenda rename repertoire;
    Pour ajouter une colonne: alter table agenda add mail varchar(15) (first| after nom);
    Pour supprimer une colonne: alter table agenda drop mail;
    Pour changer une colonne: alter table agenda change nom name varchar(10);
    Pour modifier une colonne: alter table agenda modify prenom varchar(15) not null;
    Pour ajouter une rangée: insert into agenda values (1,'Smith','John');
    Pour effacer une rangée: delete from agenda where nom='Smith;
    Pour voir les entrées d'une table:
    select * from agenda;
    select nom from agenda;
    select concat(nom," ",prenom) as personne from agenda order by nom desc limit 5;
    select nom,prenom from agenda where nom like "c%";
    Rq:order by permet d'avoir les noms rangés alphabetiquement et limit permet d'avoir les 5 premieres entrées
    like "c%" permet d'identifier les mots commencant par les lettres C ou c
    like "c__" idem et en 3 lettres

    Pour modifier une entrée: update agenda set nom='Cox' where nom='Smith';
    Pour afficher l'état de mysql: show status;
    Pour afficher les variables d'environnement: show variables;
    Pour afficher une liste des taches en cours d'éxécution: show processlist;
    Pour afficher des infos sur un utilisateur: show grants for user@host;
    pour afficher des infos sur les index d'1 table: show index from agenda;
    Pour effectuer une sauvegarde d'une base de données:
    mysqldump --opt test -p > /tmp/archive_test.2000-07-12
    options de mysqldump:
    d(contient que la définition des tables)
    t(contient que les enregistrements)
    v(affiche des messages sur l'avancement du backup)
    opt(optimise l'écriture du fichier)
    Pour insérer un fichier dans une table: load data (local) infile '/home' (replace) into table agenda fields terminated by ';' lines terminated by '\n';
    Pour optimiser une table en élimant l'espace gaspillé: optimize table agenda;
    (my)isamchk est un utilitaire pour l'entretien et la réparation des tables
    Pour vérifier une table: myisamchk agenda
    l'option --extend-check permet un contrôle plus détaillé
    Pour réparer une table: myisamchk --(safe-)recover agenda
    l'option --safe-recover est un mode de réparation plus détaillé