Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:mysql [14/11/2012 14:59] 127.0.0.1 modification externe |
doc:programmation:mysql [05/07/2014 17:33] captnfab [MYSQL] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== MYSQL ====== | ====== MYSQL ====== | ||
- | ''mysql'' est un serveur de base de données très souvent utilisé avec le langage de création de pages web dynamiques : PHP. | + | * ''mysql'' est un serveur de base de données très souvent utilisé avec le langage de création de pages web dynamiques : PHP. |
''mysql'' dérive directement de SQL (Structured Query Language) qui est un langage de requête vers les bases de données exploitant le modèle relationnel. \\ | ''mysql'' dérive directement de SQL (Structured Query Language) qui est un langage de requête vers les bases de données exploitant le modèle relationnel. \\ | ||
Ligne 10: | Ligne 10: | ||
Voir **Installation d'un serveur LAMP** : | Voir **Installation d'un serveur LAMP** : | ||
- | * [[config:apache | Un Serveur LAMP]] | + | * [[:doc:obsolete:apache2:multisite | Un Serveur LAMP]] |
+ | * Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=2806 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
===== Installation de mysql ===== | ===== Installation de mysql ===== | ||
- | <code bash>aptitude install mysql-server</code> | + | <code root>aptitude install mysql-server</code> |
===== Sécurisation de mysql ===== | ===== Sécurisation de mysql ===== | ||
Ligne 63: | Ligne 63: | ||
==== Accéder à mysql : ==== | ==== Accéder à mysql : ==== | ||
- | <code bash> | + | <code user>mysql -u root -p</code> |
- | $ mysql -u root -p | + | Enter password: |
- | Enter password: | + | Welcome to the MySQL monitor. Commands end with ; or \g. |
- | Welcome to the MySQL monitor. Commands end with ; or \g. | + | Your MySQL connection id is 29 |
- | Your MySQL connection id is 29 | + | Server version: 5.0.51a-24+lenny4 (Debian) |
- | Server version: 5.0.51a-24+lenny4 (Debian) | + | |
- | Type 'help;' or '\h' for help. Type '\c' to clear the buffer. | + | Type 'help;' or '\h' for help. Type '\c' to clear the buffer. |
+ | |||
+ | mysql> | ||
- | mysql> | ||
- | </code> | ||
**Renseignez :** | **Renseignez :** | ||
- | <code>Enter password:</code> | + | Enter password: |
<note tip>''avec le //passwd mysql// et non le //passwd root// du système.''</note> | <note tip>''avec le //passwd mysql// et non le //passwd root// du système.''</note> | ||
Ligne 116: | Ligne 116: | ||
Query OK, 1 row affected (0.00 sec) | Query OK, 1 row affected (0.00 sec) | ||
+ | Souvent, | ||
+ | \\ | ||
+ | les simples utilisateurs ne peuvent pas créer une base des données, | ||
+ | \\ | ||
+ | donc,**root** créer la base, et puis donne les privilèges à un simple utilisateur | ||
+ | |||
+ | __Pour donner les privilèges à un simple utilisateur__ | ||
+ | doit être sous root, puis: | ||
+ | <code bash> | ||
+ | GRANT ALL PRIVILEGES ON db00.* TO 'user00'@'localhost' IDENTIFIED BY 'pwd_user00'; | ||
+ | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | ====Créer simple utilisateur==== | ||
+ | Doit-être executer sous l'utilisateur root **de mysql** | ||
+ | <code bash>CREATE USER 'login'@'hote' IDENTIFIED BY 'mot_de_passe'; | ||
+ | </code> | ||
==== Accéder à une base de donnée ==== | ==== Accéder à une base de donnée ==== | ||
Ligne 215: | Ligne 232: | ||
'Site Debian, la ou Debian est le plus simple', | 'Site Debian, la ou Debian est le plus simple', | ||
'1'); | '1'); | ||
+ | </code> | ||
+ | |||
+ | ====Vérification d'une table==== | ||
+ | C'est pour voir le code qui a servit a créer la table00: | ||
+ | <code bash> | ||
+ | show create table00\G | ||
</code> | </code> | ||
Ligne 340: | Ligne 363: | ||
Query OK, 6 rows affected (0.00 sec) | Query OK, 6 rows affected (0.00 sec) | ||
Records: 6 Duplicates: 0 Warnings: 0 | Records: 6 Duplicates: 0 Warnings: 0 | ||
+ | </code> | ||
+ | |||
+ | ===Vider une table=== | ||
+ | Il faut que la table à vider ne soit pas relier à aucune autre table: | ||
+ | <code bash> | ||
+ | truncate table00; | ||
+ | </code> | ||
+ | |||
+ | Ainsi, si la table possède des relations avec d'autre table alors il faut supprimer cette relation | ||
+ | <code bash> | ||
+ | alter table table_a_relation drop foreign key nom_relation; | ||
+ | </code> | ||
+ | |||
+ | Pour voir le nom_relation: | ||
+ | <code bash> | ||
+ | show create table table_a_relation; #ou | ||
+ | show create table table_a_relation\G | ||
</code> | </code> | ||
Ligne 357: | Ligne 397: | ||
Query OK, 6 rows affected (0.01 sec) | Query OK, 6 rows affected (0.01 sec) | ||
Records: 6 Duplicates: 0 Warnings: 0 | Records: 6 Duplicates: 0 Warnings: 0 | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | ====Vérification d'une base==== | ||
+ | C'est pour vérifier les relations entre les tables: | ||
+ | <code bash> | ||
+ | select * from information_schema.referential_constraints where constraint_schema = 'nom_base'; | ||
+ | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | =====Utilisation avancée===== | ||
+ | |||
+ | ====Trigger==== | ||
+ | **Trigger**: pour executer des commandes sql après certains actions,\\ | ||
+ | appeler aussi un __déclenheur__ | ||
+ | \\ | ||
+ | __ex:__ après l'insertion dans une __table00__ on veut une insertion dans __table01__: | ||
+ | Ainsi,\\ | ||
+ | 1) on crée une autre delimiter, | ||
+ | 2) on crée le trigger, | ||
+ | 3) on change le trigger par sa valeur par défaut, (';') | ||
+ | |||
+ | ===Création trigger=== | ||
+ | <code bash> | ||
+ | delimiter | #pour la creation du trigger | ||
+ | create trigger trigger00 after insert on table00 for each row | ||
+ | begin | ||
+ | #instruction of the trigger | ||
+ | insert into table01(col00, col01) values('val00', 'val01'); | ||
+ | end | ||
+ | delimiter ; #on remet le trigger par sa valeur par défaut | ||
+ | </code> | ||
+ | |||
+ | ===Vérification des triggers=== | ||
+ | c'est pour voir les triggers qui sont dans la base | ||
+ | <code bash> | ||
+ | show triggers \G | ||
+ | </code> | ||
+ | \\ | ||
+ | Ainsi, on a les triggers qui sont présents, \\et | ||
+ | pour voir la définition du trigger00: | ||
+ | <code bash> | ||
+ | show create trigger trigger01; | ||
</code> | </code> | ||
\\ | \\ | ||
\\ | \\ | ||
\\ | \\ | ||
+ | |||
''**À suivre**....'' --- //[[joel.smolski@gmail.com|smolski]] 2010/07/27 09:00// :-) | ''**À suivre**....'' --- //[[joel.smolski@gmail.com|smolski]] 2010/07/27 09:00// :-) | ||
+ | |||