IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

N'exporter que certains champs d'une base de données


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut N'exporter que certains champs d'une base de données
    Bonjour,
    Tout d'abord je précise que je suis débutant dans le domaine donc pardonnez mon vocabulaire et mon manque de connaissance.

    Donc voilà j'ai une table dans ma base de donnée contenant toutes les images de mon site web. Quand je clique dessus, j'arrive sur la liste de chaque photos et des "champs" qui les décrivent (filename, description, alttext, ...).

    Ce que je cherche à faire c'est exporter toutes ces lignes mais seulement avec les champs que j'aurais choisis, par exemple seulement les champs "filename" et "description" en CSV pour avoir quelque chose de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "Photo-1.jpg","description-1"  
    "Photo-2.jpg","description-2"  
    "Photo-3.jpg","description-3"  
    "Photo-4.jpg","description-4"  
    "Photo-5.jpg","description-5"
    Apparent il faut une requête de création de table mais je n'arrive pas tellement à comprendre et j'ai pas envie de faire de bêtise.

    Pour l'instant dans ma requête j'ai ça, sachant que je n'ai que 7 images pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *  FROM 'site1_ngg_pictures'  WHERE (  'pid' = 28 ) OR (  'pid' = 27 ) OR (  'pid' = 24 ) OR (  'pid' = 26 ) OR (  'pid' = 25 ) OR (  'pid' = 22 ) OR (  'pid' = 23 )

    Je demande donc votre aide, merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    pour ta requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *  FROM 'site1_ngg_pictures'  WHERE pid IN(28, 27, 24, 26, 25, 22, 23)
    plus simple à lire, il te suffit de lister chaque pid dans les parenthèses de la fonction IN pour "l'intégrer" à la recherche.

    Ensuite qu'entend tu par exporter ? Extraire toutes les données pour les insérer dans un fichier pour pouvoir plutard faire une importation et retrouver ta base de données au même point qu'à l'export (une sauvegarde de la base concrètement) ? Ou juste une requête pour lister tes images ?

    Deplus évite de faire :
    Car le * n'est pas "concret", quand tu relira ta requête tu ne saura pas qu'elle colonne est utile et si un jour tu ajoute une nouvelle colonne à la table qui est inutile dans ta requête mais utile pour une autre tu remontera quand même les informations qui te seront alors inutile.
    une réponse vous a permis d'avancer ?

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    2) Plutôt que d'enchaîner les OR, il vaut mieux utiliser IN.

    3) Les noms d'objets de la BDD ne se mettent pas entre apostrophes, lesquelles sont utilisées pour délimiter les chaînes de caractères.

    4) Il vaut mieux éviter la guerre des étoiles !

    Du coup, après le point 4, tu as ta réponse : Ne sélectionne que les colonnes dont tu as besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT filename, description
    FROM site1_ngg_pictures
    WHERE pid IN (22, 23, 24, 25, 26, 27, 28)
    Dans le cas présent, puisque les pid souhaités sont successifs, tu peux même utiliser BETWEEN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE pid BETWEEN 22 AND 28
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour à tous,

    Pour compléter ce que les autres on fournis, pour la partie export proprement dite dans un fichier avec séparateur genre csv, tu peut utiliser la directive OUTFILE comme ceci (je reprends le code de cinephil):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT filename, description
    INTO OUTFILE 'd:/exportsSql/monfichier.txt'
    FIELDS TERMINATED BY ';'
    LINES TERMINATED BY '\r\n' -- si on veut format dos/windows sinon inutile
    FROM site1_ngg_pictures
    WHERE pid IN (22, 23, 24, 25, 26, 27, 28)
    Cordialement

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour vos réponse.
    Donc j'ai essayé de faire la requête pour l'export mais ça me met un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1045 - Access denied for user 'dbo....'@'%' (using password: YES)
    J'utilise phpmyadmin, y'a a t-il un moyen pour régler ce probleme de privilège ou je ne sais quoi ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    Tout dépend du type d'accès que tu as sur le serveur mysql.
    1. Le serveur est sur ta machine
    2. Le serveur est sur une autre machine de ton réseau local
    3. Le serveur est chez un hébergeur


    Pour utiliser SELECT INTO OUTFILE, il faut que le user id ait les droit sur les fichiers, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT, FILE ON * . * TO "[dbo]"@ "localhost";
    et que le process mysql aie les droit d'écriture sur le répertoire cible.

    si tu as accès et les droit sur le serveur, tu doit pouvoir les configurer.

    Tu peux aussi lancer en ligne de commande msqldump avec l'option "-w" qui permet de placer ta clause where et générer cette fois un fichier local à ta machine.

    Par contre, si c'est un hébergeur, il faut li demander si tu peux avoir ces droits et qules sont les répertoires de sortie autorisé, ou dans le pire des cas, lui demander d'exécuter à ta place l'export (en général, ils ont des procédures prévues pour ce type d'action).

    Pas mal d'info ici :
    http://dev.mysql.com/doc/refman/5.0/en/select.html

    Cordialement


    Est-ce un serveur d'un hébergeur ?

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse.
    Il s'agit d'un serveur dédié chez 1&1.
    Donc du coup j'attend de voir ce que tu en penses car je ne sais pas si ça correspond à serveur d'un hébergeur ou pas, et comme tu m'as demandé.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    Ben oui c'est un serveur hébergé et je crains que tu n’aie pas d'autres accès que par PHPMyadmin.
    Mais tu peux quand même demander si il y a un moyen (ftp généralement) de récupérer un fichier et de leur demander aussi s'ils peuvent t'y placer le résultat d'un outfile dans le cas où tu ne précise pas de chemin pour le fichier (juste le nom).

    Dans le pire des cas, si ta table n'est pas trop grosse, tu peux utiliser la fonction export de PHPMYADMIN qui va cette fois créer un fichier sur ta propre machine que tu pourra exploiter ensuite pour faire tes extractions.

    si tu prend le format sql, ça te permet de réinjecter les données dans une base mysql locale ou la tu pourra faire ce que tu veux.

    Tu peux aussi choisir un format CSV et le manipuler avec un éditeur puissant pour faire tes sélections, ou bien, s'il y a moins de 65000 enregistrement le manipuler avec un outil comme Excel ou CALC openoffice.

    Cordialement

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il y a grosso-modo deux types d'offres chez un hébergeur tel que 1&1 :
    - le serveur mutualisé, sur lequel on te crée un compte avec son espace disque et sa base de données à laquelle tu ne peux accéder que via le phpMyAdmin de l'hébergeur ;
    - le serveur dédié qui t'est loué à toi tout seul et sur lequel tu installes ce que tu veux, sur lequel tu as un contrôle total.

    Sur le serveur mutualisé, tu as généralement, en plus de la fonction prévue dans phpMyAdmin, un outil d'exportation de données car la fonction de phpMyAdmin est limitée en taille.
    Sur le serveur dédié, tu crées les comptes utilisateurs que tu veux avec les droits que tu veux et donc tu peux utiliser les commandes en ligne mysqldump, mysql, mysqladmin ou les requêtes LOAD DATA INFILE et SELECT INTO OUTFILE sans problème.

    Bien entendu, le serveur dédié est beaucoup plus cher que le serveur mutualisé !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Merci pour vos réponses.
    Par contre je suis un peu perdu malgré la précision de vos réponses car je débute complètement.
    J'ai une serveur dédié chez 1&1, et je sais qu'une fois pour exporter ma db j'avais due passer par le logiciel "Putty".
    Est-ce que je ne devrais pas faire pareil pour mon probleme là ? ou bien le probleme vient d'ailleurs ?

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour theophile,

    Effectivement, tu te trouve manifestement dans l'option 2 que t'as indiqué Cinephil, c'est à dire que tu as a ta disposition un serveur où tu dois pouvoir faire ce que tu veux.
    Le fait que tu aie utilisé putty le prouve, tu peux te "logger" à distance sur ton serveur.
    Du coup, tu peux lancer ta commande dans un appel en ligne de commande à mysql ou utiliser mysqldump comme je te le suggérais.
    Évidemment, le fichier créé sera sur la machine serveur distante, mais tu peux très probablement le rapatrier par ftp sur ta machine si besoin je pense.
    pour mysqldump consulte la doc Mysql ici :
    http://dev.mysql.com/doc/refman/5.1/en/mysqldump.htmll

    Cordialement

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Ok merci bien, mais n'y connaissant vraiment rien je n'ai pas envie de faire de bêtise donc je vais exporter manuellement via phpmyadmin avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'filename','description'
    FROM site1_ngg_pictures
    WHERE pid IN (22, 23, 24, 25, 26, 27, 28)
    Par la dernière ligne du code on m'a proposé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE pid BETWEEN 22 AND 28
    mais y a t-il un moyen pour aller chercher automatiquement tous les "pid" ?

    Un truc du genre (bon évidement je vais dire n'importe quoi hein mais c'est pour que vous compreniez ma pensé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WHERE pid SELCTALL
     
    ou
     
    WHERE pid *

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    La clause WHERE sa filtre les résultat il te suffit de ne pas mettre de clause WHERE pour que toutes les lignes de ta table soit retournée.
    une réponse vous a permis d'avancer ?

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Un serveur dédié accessible sur le web et sans un minimum de connaissance en administration système, c'est casse-gueule !

    Tu exposes ton site à attaques, piratage et autres joyeusetés.

    Je te conseille donc fortement de passer du temps sur les tutoriels concernant la sécurisation d'un serveur web, ceux concernant l'administration de base de données, et notamment la gestion des utilisateurs et de leurs droits, ceux sur les sauvegardes...

    Bref, c'est un métier !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  15. #15
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Merci Exia93
    Oui je suis d'accord avec toi CinePhil, mais j'ai juste pris un serveur dédié pour avoir plus de perf, je n'avais pas le choix, mon hébergement mutualisé ne suivait plus.
    Et chez 1&1 c'est assez simple à gérer car il y a une interface utilisateur donc pas besoin de s'y connaitre.
    Enfin bref je vais quand même essayer de faire l'exportation comme vous me l'aviez proposé avec la "requête de table" car ça serait quand même plus pratique d'automatiser un maximum.
    J'vais essayer de voir si je peux m’octroyer les droit d'une manière ou d'une autre pour régler ce probleme d'erreur

  16. #16
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Je relance ce sujet car voilà plus d'un moins que je fais ces étapes manuellement en passant par phpmyadmin (car rappelons le la requête sql via phpmyadmin m'envoyais un message d'erreur à cause des droits).
    Je voulais donc savoir si il y avait moyen de le faire autrement, par exemple avec putty ?

    Voici ma requête finale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT `pid`,`filename`,`description`
    INTO OUTFILE 'd:/monfichier.txt'
    FIELDS TERMINATED BY ';'
    FROM XXXXX
    ORDER BY `pid` DESC
    LIMIT 0 , 27
    Je crois que c'est cette ligne qui pose probleme au niveau des droit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INTO OUTFILE 'd:/monfichier.txt

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour theophile76,

    Comme on l"a vu dans les précédents messages, on est bien d'accord que le SELECT ..... INTO OUTFILE écrit dans un fichier qui se trouve sur le serveur ?
    D'après ton dernier message, ça veut dire que ton est serveur est sous Windows, qu'il possède un disque "D:" et que le process mysql as accès en écriture à ce répertoire, c'est bien ça ?

    éventuellement, je te conseillerai de donner un nom de fichier sans répertoire pour voir si ça le crée et où il le mets. Ensuite, tu pourra affiner en précisant un répertoire précis.
    Donc essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INTO OUTFILE 'monfichier.txt'
    A priori, le fichier, sous Windows devrait être créé dans le répertoire "data" ou "data\<database_name>" si une base était sélectionnée.

    Sous Linux, ça doit être (à vérifier)
    "/var/lib/mysql/<database_name>"

    Si même sans préciser le répertoire, tu a une erreur, vois les droits GRANT FILE + les droits du process mysql (à priori ceux du user putty) comme ditr dans mon post du 30/01

    Cordialement

  18. #18
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse.
    Donc déjà pour montrer à quel point je suis débutant, j'ai crue que le fichier allait être crée que mon disque dur (D:) à moi...
    Cependant, même remplacement par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INTO OUTFILE 'monfichier.txt
    J'obtiens toujours ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1045 - Access denied for user 'dboXXXXXXXXX'@'%' (using password: YES)
    Du coup j'ai essayé de m’octroyer les droit GRANT FILE + comme tu me dit en utilisant ce code (ici) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGES ON [database name].* TO '[database user]' @'[localhost]' IDENTIFIED BY '[database password]';
    Donc voici comment je comptais procéder :

    1. Je lance Putty et dans la case "Host Name" je mets le "Nom d’hôte" que j'ai dans les infos SSH de mon espace client 1&1.

    2. Dans l'invite de commende qui s'ouvre, j'entre mon Nom d'utilisateur.

    3. Je rentre le code "GRANT ALL PRIVILEGES" que j'ai adapté à ma situation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGES ON [dbXXXXXXXXX].* TO '[dboXXXXXXXXX]' @'[localhost]' IDENTIFIED BY '[database password]';
    Donc là j'ai deux question :
    1. Est-ce que j'ai fait les bonne étapes ?
    2. Est-ce que à la place de 'localhost' je ne devrais pas mettre autre chose ? Car dans mon message d'erreur il y a '%' à la place. Ou même est ce que je ne devrais pas mettre 'localhost:/tmp/mysql5.sock' car c'est le nom du serveur de la base de données de mon compte chez 1&1.

    Merci.

    Remarque : voici ce que j'ai vue à propos du 'localhost' et du '%' mais je n'ai pas vraiment compris à vrai dire, et je sais même pas si ça à vraipment à voir avec mon problème (source) :
    You need to be quite clear about the GRANT command. If you granted it using 'username'@'localhost', it can only be used by a mysql running locally with the database. If you granted it using 'username'@'%', it can only be used from a remote location, not the local machine.

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    A mon avis les réponses aux questions sont :
    1. non, je ne vois pas de connexion à la base avec mysql et le GRANT n'est à mon avis pas le bon (voir après)
    2. Pour le localhost, ça dépend comment tu te connecte à mysql pour faire ton "SELECT INTO OUTFILE", donc c'est ok si tu te connecte bien en localhost quand tu lance mysql


    1ere chose : comment te connecte tu à mysql une fois logé en putty ?
    avec l'utilisateur dboXXXXXXXXX et le hostname 'localhost'?
    2ieme chose : tu n'a pas utilisé le code que je t'ai donné pour donner les droits FILE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT, FILE ON * . * TO '[dbo]'@ 'localhost';
    en l'occurrence, tu devrais mettre 'dboXXXXXXXXX' au lieu de 'dbo' si ton schema porte ce nom bizarre et pas 'dbo'.

    A priori, ton code ne marche pas parce que FILE est un privilège GLOBAL. Utilise mon code (en adaptant le user bien sût)

    Enfin, dans la phrase que tu dis ne pas comprendre, c'est simple :

    Si tu te connectes localement à mysql, ce qui est à priori le cas si tu lance mysql comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myqsl -u dboXXXXXXXXX  -h localhost -p
    tu as besoin des privilèges 'dboXXXXXXXXX @localhost'

    Si tu te connectes à mysql à distance (tu n'utilise pas putty mais directement mysql depuis une machine client (je pense que sur le serveur dédié 1&1 ça ne doit pas être autorisé pour des raisons de sécurité, mais peut-être que si), par exemple comme cela :
    mais aussi si tu te connectes en putty mais en donnant comme nom d'hote autre chose que localhost, par exemple nomduserveur
    Dans ce cas, il faudra mettre les privilège comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u dboXXXXXXXXX  -h nomduserveur -p
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT, FILE ON * . * TO '[dbo]'@ '%'
    ou, si tu es sûr du nom du serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT, FILE ON * . * TO '[dbo]'@ 'nomduserveur'
    Voilà, j'espère que ça répond à tes interrogations.

    N'oublie pas qu'il faut aussi que le user du processus mysql ait les droits au sens système d'exploitation d'écriture dans le répertoire destination. mais comme ce serveur "t'appartient", je présume que c'est le cas.

    Cordialement

Discussions similaires

  1. [AC-2007] Exporter seulement certains champs d'une requête vers Excel
    Par MelaAllIn dans le forum VBA Access
    Réponses: 8
    Dernier message: 26/08/2011, 09h26
  2. Afficher les tables et champs d'une base de données
    Par sovo dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 21/02/2008, 14h40
  3. Réponses: 2
    Dernier message: 28/06/2006, 20h34
  4. position du champs dans une base de donnée
    Par eric205 dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/04/2005, 09h22
  5. [MFC] Champs d'une base de donnée
    Par MadChris dans le forum MFC
    Réponses: 5
    Dernier message: 24/03/2004, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo