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é