Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] Administrez vos BDD avec MySQL

26 septembre 2018 à 16:59:45

Exactement c'est ce que l'on appelle une relation de un à plusieurs (one to many ou 1,n).

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
4 octobre 2018 à 10:36:31

Bonjour,

J'utilise MySQL 8.0.11 sous Windows 8.1, et j'entame les vues dans la partie "Au-delà des tables classiques".

Il semble que ma console réagit anormalement lorsque j'essaie de faire les updates sur les vues du cours (Partie : Au-delà des tables classiques / Vue / Modification des données d'une vue). En effet, aucune des vues du cours ne sont updatables (code 1288 (HY000): The target table V_Animal_details of the UPDATE is not updatable) alors qu'elle le devrait. Pourtant je réponds au préconisation préalablement présentée : pas de clause GROUP BY, HAVING, ni de DISTINCT ou de LIMIT, aucune fonction d'aggregation, d'UNION ou de sous-requête dans le SELECT, et on ne modifie qu'une valeur dans une table. 

J'avais déjà eu un comportement bizarre lors de la partie sur les triggers, et j'avais changé mon profil sdz pour travailler uniquement avec root (même si c'est déconseillé, cela me permettait de poursuivre le cours sachant que le problème de l'époque était sur les privilèges). Cependant, cette astuce ne semble pas impacter ce nouveau problème.

Sauriez-vous me guider pour solutionner ce problème ?

Merci d'avance

  • Partager sur Facebook
  • Partager sur Twitter
8 octobre 2018 à 17:17:10

Une relation 1,1 peut etre 1,1 dans l'autre sens mais une relation 1,n dans un sens sera n,1 dans l'autre.

Le verbe dépendre peut porter à confusion. Alors que regrouper, non. Etre le groupe, ou faire parti du groupe. On voit mieux le sens de la relation 1,n ou n,1

Race, espèce : n,1

Espèce, race : 1,n

  • Partager sur Facebook
  • Partager sur Twitter
8 octobre 2018 à 18:35:30

Euh ... oui ... quelle est ta question ?

Une relation est décrite par deux cardinalités. Pour simplifier on compose souvent ces deux cardinalités. Par exemple :

  • commande 1,1 --- 1,n client se résumera 1,n
  • commande 1,n --- 1,n article se résumera n,n
  • personne 1,1 --- 0,1 client se résumera 1,1
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
9 octobre 2018 à 17:36:31

Bonjour,

comment régler le problème suivant? 

  • Partager sur Facebook
  • Partager sur Twitter
10 octobre 2018 à 15:34:45

siakacoulibaly a écrit:

comment régler le problème suivant?

En apprenant la syntaxe MySQL de LIMIT ...

En recherchant un peu sur internet avant de poster ...

Et surtout en mettant des parenthèses autour des SELECT :

( SELECT ... LIMIT 3 )
UNION
( SELECT ... LIMIT 10 )
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
15 octobre 2018 à 16:37:08

Benzouye a écrit:

siakacoulibaly a écrit:

comment régler le problème suivant?

En apprenant la syntaxe MySQL de LIMIT ...

En recherchant un peu sur internet avant de poster ...

Et surtout en mettant des parenthèses autour des SELECT :

( SELECT ... LIMIT 3 )
UNION
( SELECT ... LIMIT 10 )

Ok,Merci



  • Partager sur Facebook
  • Partager sur Twitter
28 novembre 2018 à 15:02:07

Bonjour tout le monde,

J'allais crier au secours mais finalement j'ai résolu mon problème que voici :

Dans la leçon Suppression et modification de données, il est proposé de sauvegarder sa base de données en utilisant la commande suivante : mysql nom_base < chemin_fichier_de_sauvegarde.sql

Note importante : je suis sur windows 10

J'ai donc fait un shift + click droit dans mon dossier contenant le fichier de sauvegarde et là j'ai ouvert powershell (avant on avait accès à l'invite de commande de windows) d'où j'ai exécuté la commande.

Et là bim ! message d'erreur tout moche : L’opérateur « < » est réservé à une utilisation future.

Voici la solution : Powershell n'aime pas <. Il faut donc passer par l'invite de commande windows auquel on n'a plus accès avec shift + click droit... Mais qu'on peut obtenir en effaçant le contenu de la barre d'adresse du dossier et en tapant cmd !

J'ai alors retapé la commande de type mysql nom_base < chemin_fichier_de_sauvegarde.sql (en y ajoutant mon login et mon mot de passe, ce qui donne par exemple mysql -u root test2 < sauvegarde.sql) et Halleluïa ! la grâce divine fait alors son effet et la commande fonctionne.

Moralité : merci windows 10 pour me mettre des bâtons dans les roues !

-
Edité par conifere 28 novembre 2018 à 15:07:05

  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2018 à 16:26:13

Bonjour,

je n'arrive pas à publier le résultat de l'activité_partie 2 j'obtiens un message d'erreur à chaque fois ("The file "" does not exist) et je ne peux donc plus avancer:

Pouvez-vous m'aider svp?

Merci.

-
Edité par ElianeDenis 19 décembre 2018 à 17:24:36

  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2018 à 17:03:30

Bonjour,

Les copies d'écran n'ont pas fonctionné ...

Après, afin de vous assurer d'avoir une réponse le plus rapidement possible, je vous invite à directement contacter l'équipe du site via l'adresse hello@openclassrooms.com. En effet, l'équipe du site ne passant que très rarement sur les forums, il sera beaucoup plus efficace de les contacter directement.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
20 décembre 2018 à 20:58:32

bonsoir, j'ai une erreur quand j'essaie de télécharger les exercices à corriger pour la 1ère activité

Ce site est inaccessible

Impossible de trouver l'adresse IP du serveur de s3-eu-west-1.amazonaws.com.

  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2019 à 20:39:05

Bonjour,

Je suis entrain de corriger l'activité de la partie 2 et je m'aperçois que dans le corrigé type (fichier ptp1.sql), il manque la colonne "description" dans la table Categorie.

Cette table est fournie au départ donc ça ne devrait pas poser de problème mais cela peut prêter à confusion.

D'avance merci

  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2019 à 22:39:29

Il faut le signaler à OC via le mail hello@openclassrooms.com

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
4 janvier 2019 à 10:19:04

c'est fait, merci pour l'info
  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2019 à 22:19:14

Bonjour, 

J'ai commencé ce cours il y a peu et je suis bloqué à la commande SOURCE

Voilà le message d'erreur que j'ai :

mysql> SOURCE /Users/jimmy_sobry/Desktop/remplissageAnimal.sql;

No connection. Trying to reconnect...

ERROR 1044 (42000): Access denied for user 'student'@'localhost' to database 'emplissageanimal.sql;'

ERROR: 

Can't connect to the server


Je ne comprends pas pourquoi il cherche à ce connecter à la base emplissageanimal.sql;

d'ou peut venir le problème ? merci d'avance

  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2019 à 10:55:39

Bonjour,

Quelles commandes as-tu exécutée avant de faire le SOURCE ?

Quel système d'exploitation utilises-tu ? Si Windows il faut mettre le nom du lecteur (c:\ par exemple).

Après essaye de mettre des guillemets :

SOURCE "C:\Users\jimmy_sobry\Desktop\remplissageAnimal.sql";
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
10 janvier 2019 à 22:44:47

Merci pour votre réponse, j'ai trouvé la solution entre deux, ma base était désélectionné, j'ai du effectuer la commande USE elevage et la commande source a fonctionné.

Je suis sous MacOS Mojave 10.14.1

MySQL 8.0.13

Par contre j'ai un autre problème, avec le LOAD DATA LOCAL INFILE

Avec student j'ai cette erreur

Last login: Thu Jan 10 18:51:46 on ttys000

MacBook-Pro-de-Jimmy:~ jimmy_sobry$ mysql -u student -p --default-character-set=utf8;

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 48

Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE elevage

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> LOAD DATA INFILE "\Users\jimmy_sobry\Desktop\animal.csv" INTO TABLE Animal

    -> FIELDS TERMINATED BY';' ENCLOSED BY '"'

    -> LINES TERMINATED BY '\r\n'

    -> (espece, sexe, date_naissance, nom, commentaires);                                                                                                       ERROR 1045 (28000): Access denied for user 'student'@'localhost' (using password: YES)

mysql> 



et avec root

MacBook-Pro-de-Jimmy:~ jimmy_sobry$ mysql -u root  -p --default-character-set=utf8;

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 50

Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE elevage

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> LOAD DATA INFILE "\Users\jimmy_sobry\Desktop\animal.csv" INTO TABLE Animal

    -> FIELDS TERMINATED BY';' ENCLOSED BY '"'

    -> LINES TERMINATED BY '\r\n'

    -> (espece, sexe, date_naissance, nom, commentaires);                                                                                                       ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

mysql> 



mysql> show variables like "secure_file_priv";

+------------------+-------+

| Variable_name    | Value |

+------------------+-------+

| secure_file_priv | NULL  |

+------------------+-------+

1 row in set (0,01 sec)

mysql> 

Comment changer cette variable ? ou avoir accès à la commande avec student ? 

Mon fichier com.oracle.oss.mysql.mysqld.plist est bloqué, je ne sais pas comment le débloquer


-
Edité par jimmyso59162 10 janvier 2019 à 22:47:19

  • Partager sur Facebook
  • Partager sur Twitter
11 janvier 2019 à 16:21:58

Hello,

Juste une petite question sur la partie jointure dans le cours. Je ne comprends pourquoi la requête qui suit me donne comme résultat Empty set. Il n'y a rien qui s'affiche.

La requête en question

SELECT Animal.nom, Pere.nom AS Papa, Mere.nom AS Maman
FROM Animal
INNER JOIN Animal AS Pere
    ON Animal.pere_id = Pere.id
INNER JOIN Animal AS Mere
    ON Animal.mere_id = Mere.id
INNER JOIN Espece
    ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant = 'chat';

Si quelqu'un a des idées, je suis preneur...

Merci

  • Partager sur Facebook
  • Partager sur Twitter
11 janvier 2019 à 17:02:12

@jimmyso : https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv

Tu peux modifier la valeur de cette option dans ton fichier my.cnf file. Le plus simple est de ne rien mettre, le plus sécurisé est de placer ton fichier à importer (remplissageAnimal.sql) dans le répertoire précisé dans cette option.

@M13KD : La syntaxe de la requête est exacte, donc ce sont les données qui ne contiennent aucun animal de l'espèce "chat" ayant un père ET une mère de définis ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
12 janvier 2019 à 1:01:52

@Benzouye Tout à fait raison, je n'avais pas fait attention! Merci bcp
  • Partager sur Facebook
  • Partager sur Twitter
19 janvier 2019 à 8:38:05

Bonjour j'ai un soucis avec ma BDD, le soucis est que j'ai installé mysql sur ma machine en plus du faites que j'ai phpmyqdmin et cela me donne une erreur de ce genre <Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.> 
  • Partager sur Facebook
  • Partager sur Twitter
mokmok
25 janvier 2019 à 15:26:57

Bonjour Mala

à mon avis je pense que le soucis est au niveau du port;

PhpMyAdmin utilise le port 3306 et comme Mysql que tu as installé l'utilise déjà voilà la raison pour laquelle tu obtiens cette erreur là

:ange:

-
Edité par Dilanor 25 janvier 2019 à 15:27:56

  • Partager sur Facebook
  • Partager sur Twitter
26 janvier 2019 à 19:58:43

OK de toute facon j'ai désinstallé le phpmyadmin





Njingang Dior a écrit:

Bonjour Mala

à mon avis je pense que le soucis est au niveau du port;

PhpMyAdmin utilise le port 3306 et comme Mysql que tu as installé l'utilise déjà voilà la raison pour laquelle tu obtiens cette erreur là

:ange:

-
Edité par Njingang Dior hier à 15:27



-
Edité par MoktarKamala 26 janvier 2019 à 19:59:42

  • Partager sur Facebook
  • Partager sur Twitter
mokmok
29 janvier 2019 à 0:28:45

Bonjour à tous,

Je précise que je travaille sur Windows.

Sur la partie 7 du cours, au moment d'entrer le fichier .csv, je ne trouve pas le moyen de le faire car j'ai la réponse :

mysql> LOAD DATA LOCAL INFILE 'animal.csv'
    -> INTO TABLE Animal
    -> FIELDS TERMINATED BY ';' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
    -> (espece, sexe, date_naissance, nom, commentaires);
ERROR 1148 (42000): The used command is not allowed with this MySQL version

et suite à plusieurs tentatives et recherches sur internet, j'ai tenté un :

MySQL -p -u root --enable-local-infile

de sorte que j'ai alors la configuration suivante :

mysql> SHOW VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.01 sec)

(précédemment, c'était à OFF : j'ai compris qu'avant la version 8 par défaut c'était à ON, ensuite par souci de sécurité l'installation le pose sur OFF. Et la version que j'ai téléchargée est la version 8.0...)

et lorsque je quit et que je reviens sous la session student, le message revient.

J'ai tenté d'ôter le terme LOCAL dans la commande comme suggéré dans un post, voici ce qu'il se produit :

mysql> LOAD DATA INFILE 'animal.csv'
    -> INTO TABLE Animal
    -> FIELDS TERMINATED BY ';' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
    -> (espece, sexe, date_naissance, nom, commentaires);
ERROR 1045 (28000): Access denied for user 'student'@'localhost' (using password: YES)

Je ne comprends pas car j'ai vérifié et refait la manip de début de cours sous la session root :

GRANT ALL PRIVILEGES ON elevage.* TO 'student'@'localhost';

et une fois revenu sous la session student, j'ai bien sélectionné :

USE elevage;

Avez-vous une suggestion sur comment surmonter ce passage ?

Je vous remercie pour votre aide.

Je suis actuellement en Nouvelle-Zélande, j'ai un décalage horaire de 12h exactement donc pardonnez par avance mon temps de réponse pour la suite :)

Cordialement

Aurélien



  • Partager sur Facebook
  • Partager sur Twitter
30 janvier 2019 à 7:33:29

Bonjour,


lorsque j'essaie de créer un trigger, j'obtiens un erreur sur les privileges :


mysql> create trigger before_update_animal before update

-> on animal for each row

-> begin

-> if new.sexe != 'M'

-> and new.sexe != 'F'

-> and new.sexe is not null

-> then

-> set new.sexe = null;

-> end if;

-> end |

ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

Pourtant je pensais m'être octroyé les bons : 

mysql> grant all on elevage.* to 'pat'@'localhost';

Query OK, 0 rows affected (0,10 sec)

mais apparemment non. Du coup j'ai essayé plus précis pour voir : 

mysql> grant trigger on elevage.* to 'pat'@'localhost';

Query OK, 0 rows affected (0,11 sec)

mais ça ne marche pas non plus.
Merci d'avance pour votre aide.
  • Partager sur Facebook
  • Partager sur Twitter
30 janvier 2019 à 13:54:43

Bonjour,

Travailles-tu avec GNU/Linux ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
31 janvier 2019 à 14:33:58

Bonjour,

non je suis sous mac OS 10.13.6

  • Partager sur Facebook
  • Partager sur Twitter
31 janvier 2019 à 16:18:20

Essaye :

mysql> grant super on *.* to 'pat'@'localhost';

Puis :

mysql> flush privileges;
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
1 février 2019 à 9:50:19

AurélienMoyen a écrit:

Bonjour à tous,

Je précise que je travaille sur Windows.

Sur la partie 7 du cours, au moment d'entrer le fichier .csv, je ne trouve pas le moyen de le faire car j'ai la réponse :

mysql> LOAD DATA LOCAL INFILE 'animal.csv'
    -> INTO TABLE Animal
    -> FIELDS TERMINATED BY ';' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
    -> (espece, sexe, date_naissance, nom, commentaires);
ERROR 1148 (42000): The used command is not allowed with this MySQL version

et suite à plusieurs tentatives et recherches sur internet, j'ai tenté un :

MySQL -p -u root --enable-local-infile

de sorte que j'ai alors la configuration suivante :

mysql> SHOW VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.01 sec)

(précédemment, c'était à OFF : j'ai compris qu'avant la version 8 par défaut c'était à ON, ensuite par souci de sécurité l'installation le pose sur OFF. Et la version que j'ai téléchargée est la version 8.0...)

et lorsque je quit et que je reviens sous la session student, le message revient.

J'ai tenté d'ôter le terme LOCAL dans la commande comme suggéré dans un post, voici ce qu'il se produit :

mysql> LOAD DATA INFILE 'animal.csv'
    -> INTO TABLE Animal
    -> FIELDS TERMINATED BY ';' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\n' -- ou '\r\n' selon l'ordinateur et le programme utilisés pour créer le fichier
    -> (espece, sexe, date_naissance, nom, commentaires);
ERROR 1045 (28000): Access denied for user 'student'@'localhost' (using password: YES)

Je ne comprends pas car j'ai vérifié et refait la manip de début de cours sous la session root :

GRANT ALL PRIVILEGES ON elevage.* TO 'student'@'localhost';

et une fois revenu sous la session student, j'ai bien sélectionné :

USE elevage;

Bonjour pour répondre à ton message

il faut que tu modifies le fichier my.ini dans le C:\ProgramData\MySQL\MySQL Server 8.0, il faut que tu affiches les dossiers cachés.

une fois dans le fichier "my" ouvre le avec notepad++ et cherche la ligne

# Secure File Priv.
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"

soit tu mets tes fichiers dans ce dossier soit tu mets un '#' devant la ligne secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads" pour la grisé et choisir d'ouvrir un fichier qui peut être ailleurs sur ton pc.

LOAD DATA INFILE 'C://ProgramData/MySQL/MySQL Server 8.0/Uploads/animal.csv'
INTO TABLE animal
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'
(id,espece,sexe,date_naissance,nom,commentaires);

choisi de mettre les slash dans le bon sens / et non comme ça \ et de retirer le Local dans la première ligne.

  • Partager sur Facebook
  • Partager sur Twitter