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 :

Exporter une table en fichier .sql (données et structure) avec SQL et/ou PHP


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 66
    Points
    66
    Par défaut Exporter une table en fichier .sql (données et structure) avec SQL et/ou PHP
    Bonjour à tous

    Vous savez sur PhpMyAdmin, on peut exporter une table en fichier .sql.
    Cela nous livre un fichier contenant la structure de la table et d'autres requêtes d'import des données. C'est pratique pour déplacer des tables entre serveurs différents où se faire des mini-backups, on est sûr de ne rien perdre, pas de séparateurs récalcitrants ou autres soucis...
    Après, on a juste à importer le fichier .sql dans une autre base de données, cela crée et remplit la table (j'ai une tâche répétitive de ce type, difficilement plus automatisable pour l'instant, je crois).

    Est-il donc possible d'exporter une table en fichier .sql directement en langage SQL et/ou PHP ?

    Cela afin de créer une interface web d'exports simplifiés (qui me semble être la 1ère étape vers un script d'export puis d'import entre 2 bases de serveurs différents).

    Je crois avoir fouillé, mais sans succès...

    Merci d'avance de tous conseils !

  2. #2
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser symfony process ou exec et mysqldump ?

    Sinon c'est tout à fait possible en PHP, mais par contre il va falloir coder un max...

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Citation Envoyé par georgie2
    Est-il donc possible d'exporter une table en fichier .sql directement en langage SQL et/ou PHP ?
    L'utilitaire PhpMyAdmin est destiné pour le SGBDR MySql uniquement.
    Tout ce qui sera exporté sera exploitable par MySql.
    Donc pas de Php ou quoi que ce soit d'autre.

    Citation Envoyé par georgie2
    Cela afin de créer une interface web d'exports simplifiés (qui me semble être la 1ère étape vers un script d'export puis d'import entre 2 bases de serveurs différents).
    Est-ce sur le même ordinateur ?
    Est-ce dans les deux cas, un serveur MySql, mais je suppose pas la même version MySql.
    En effet, Mysqldump est une solution.

    Vous n'avez pas précisé si vous êtes sous windows ou sous linux ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Merci de vos réponses, je vais effectivement préciser la situation:

    Les 2 bases MySQL que je veux utiliser (il n'est pas encore question qu'elles communiquent réellement pour l'instant) sont sur 2 serveurs différents.
    L'un de ces serveurs est un serveur mutualisé. L'autre est un serveur dédié, mais sur lequel je n'ai accès qu'à la base de données.
    Je crois que mes compétences et mes accès vont me contraindre à n'utiliser que PHP et SQL, et encore, je suis un complet débutant en PHP.

    On pourrait résumer le besoin en disant qu'il s'agit de transférer quelques tables d'un serveur MySQL sur un autre serveur MySQL, en n'utilisant que PHP et SQL. Et en écrasant les tables de destination si elles existent déjà.

    Cela le plus rapidement possible bien sûr, mais surtout le plus simplement : c'est à dire quitte à le faire en 2 fois (avec un passage sur mon pc perso, export puis import des fichiers).

    Je remarque qu'en utilisant que PhpMyAdmin, en cochant des tables puis en demandant l'export en SQL, on reçoit bien un seul et unique fichier SQL, contenant les requêtes de création des tables, puis d'import des données.
    Après suppression de quelques lignes de ce fichier (relatives à la base d'origine), importer ce seul fichier dans un autre PhpMyAdmin recrée bien toutes les tables. C'est déjà super, je pourrais m'en contenter, mais sur certaines grosses tables je dois faire des exports en plusieurs fois. Si je veux aller plus vite, je dois donc trouver le moyen de gérer mes exports plus finement.
    Me créer mes propres scripts d'export en PHP, exécutables sur simple clic dans une interface web sécurisée, me semble être une bonne idée. Car après je n'aurais qu'à les importer dans la base de destination, ça me fera déjà gagné beaucoup de temps. Mais je me trompe peut-être...

    J'ai regardé du coté de mysqldump, mais j'ai l'impression que ça va être finalement plus lourd que la méthode actuelle d'exports successifs (je crois que mysqldump va exporter toute la base, or la base en question est très lourde). Je crois aussi que je n'ai pas la main pour utiliser cette commande (c'est en lignes de commande je crois non ?).

    J'ai regardé du coté de exec, ça a l'air puissant, mais j'avoue ne pas bien comprendre l'utilisation. Il s'agit de déclencher des lignes de commandes dans du Php ? C'est possible sans avoir la main sur le serveur lui-même ? Pouvez-vous m'éclairer un peu plus ?
    J'ai l'impression que ce chapitre PHP va m'être interdit pendant quelques temps...

    J'ai regardé du coté de Symfony process. Là encore ça a l'air très intéressant, mais je visualise mal l'ampleur de cette solution : il s'agirait de mettre en place une application Symfony dédiée à cet usage ? Pouvez-vous m'éclairer un peu ? Car effectivement ça pourrait m'intéresser (un bon prétexte pour passer à Symfony...).

    Sinon, en restant dans du strict PHP, on peux générer les scripts SQL nécessaires progressivement, en écrivant à la main le script SQL de création des tables (qui ne changent pas), puis derrière un INSERT INTO et les données en PHP.
    Mais effectivement, ça demande beaucoup de code... Je creuse de ce coté là mais...

    Merci d'avance de tous conseils !

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Georgie2.

    Citation Envoyé par Georgie2
    On pourrait résumer le besoin en disant qu'il s'agit de transférer quelques tables d'un serveur MySQL sur un autre serveur MySQL, en n'utilisant que PHP et SQL.
    Vous avez précisé que vous désirez transférer une base de données d'un serveur vers un autre.
    Mais est-ce un traitement répétitif, disons tous les jours. Est-ce bien cela ?

    J'avais commencé à répondre dans ce sujet, à la même interrogation que vous.
    --> http://www.developpez.net/forums/d15...uete-jointure/

    Le premier transfert devra se faire manuellement, à cause de la volumétrie.
    Par la suite, et grâce à la table "hist", vous transférez que le différentiel.
    Vous pouvez faire cela plusieurs fois par jour, afin de réduire la volumétrie.

    Prenez connaissance de cet autre sujet, et ensuite posez vos questions.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Exporter une <table> vers fichier CSV
    Par sebhm dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 17/04/2014, 15h33
  2. Réponses: 2
    Dernier message: 02/09/2010, 08h39
  3. Bouton pour exporter une table dans fichier BAT
    Par WITER dans le forum Langage
    Réponses: 1
    Dernier message: 08/11/2007, 09h08
  4. Réponses: 3
    Dernier message: 06/01/2007, 17h44
  5. Exporter une table dans un fichier excel
    Par david71 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/09/2005, 17h09

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