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

Migration SGBD Discussion :

Interbase vers MySql


Sujet :

Migration SGBD

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Interbase vers MySql
    Bonjour,

    J'ai une base de donnée Interbase issue d'un logiciel de gestion de bibliothèque. J'aimerai ré-utiliser cette bdd pour la mettre en ligne sur le site web de la bibliothèque en SQL. Est ce possible? Si oui comment procéder? (j'ai trouvé des logiciels mais tous payants...

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Interbase peut être utiliser par une application web aussi...

    Que veux tu faire exactement ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VLDG Voir le message
    Que veux tu faire exactement ?
    Je monte un site pour une bibliothèque et je voudrais simplement que les internautes puissent rechercher un livre dans la base (d'environ 6000 ouvrages pour le moment) en tapant un titre, un auteur ou un mot clé. Je ne souhaite pas (pour l'instant) écrire dans dans la base mais seulement faire des requêtes.

    Citation Envoyé par VLDG Voir le message
    Interbase peut être utiliser par une application web aussi...
    Ah je ne le savais pas! En fait Firebird est à Interbase ce que Apache est à Mysql? C'est ça? Le problème est que Mysql est le seul type de base de donnée que mon hébergeur me permet d'exploiter.

    Donc je suis bien obligé (si je veux rester chez mon hébergeur) de convertir ma base?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Je ne connais pas Interbase mais je suppose que s'il s'agit d'un SGBDR tu dois pouvoir exporter les données sous format SQL ?
    Il n'y a plus qu'à vérifier la syntaxe des requêtes CREATE TABLE, ALTER TABLE et des premières INSERT INTO pour voir comment ça passe dans MySQL. Ensuite tu lance le paquet de requêtes et tu vas boire l'apéro en attendant que ça s'exécute.
    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 !

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Je ne connais pas Interbase mais je suppose que s'il s'agit d'un SGBDR tu dois pouvoir exporter les données sous format SQL ?
    Justement, j'aimerais savoir COMMENT faire ça! Je suis un noob en bases de données , si quelqu'un qui connait pouvait me guider j'apprécierai!

    MERCI

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par Spacelex Voir le message
    Ah je ne le savais pas! En fait Firebird est à Interbase ce que Apache est à Mysql? C'est ça? Le problème est que Mysql est le seul type de base de donnée que mon hébergeur me permet d'exploiter.
    c'est bien domage

    tu peux utiliser des composants comme database comparer

    http://www.clevercomponents.com/prod...dbcomparer.asp

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci VLDG pour le logiciel qui est gratuit! Mais j'ai un souci d'utilisation.
    Quand je choisi d'ajouter ma base InterBase, il ne me donne pas la possibilité lui donner la source en local, seulement par TCP/IP. Moi je voudrais lui donner à manger mon *.gdb pour qu'il me recrache l'équivalent base sur mon serveur mysql...

    Full convert entreprise en version trial me permet de faire ca. J'ai réussi avec ce dernier mais il est bien trop cher.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Spacelex Voir le message
    Quand je choisi d'ajouter ma base InterBase, il ne me donne pas la possibilité lui donner la source en local, seulement par TCP/IP.
    Tu as essayé de lui donner 127.0.0.1 qui est l'adresse IP de localhost ?
    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 !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Tu as essayé de lui donner 127.0.0.1 qui est l'adresse IP de localhost ?
    c'est la bonne méthode. Je ne sais pas pourquoi le local ne fonctionne pas.

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'ai du nouveau!

    Mais avant tout je tiens à vous remercier pour l'aide que vous m'avez apporté jusqu'ici!

    Effectivement je n'avais pas mis cette IP là. Donc pour la source c'est bon il avale bien ma base Interbase. Maintenant pour la cible, je met les infos qu'il faut (ip, nom de base etc.) mais quand je teste la connexion à la base il me met le message suivant :

    Attempting to connect to: 'biblio2'...
    Error: None of the dynamic libraries can be found: libmysql50.dll, libmysql.dll
    Connecting to database: biblio2... Failed!

    Je précise que j'utilise Wamp Server 2.0.

    J'Y SUIS PRESQUE !!!!

  11. #11
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bon,

    Finalement j'ai laissé tombé les logiciels de conversion. J'ai trouver un script php et il fonctionne bien pour ma base! (un petit problème avec les accents mais ça ne va pas être bien compliqué à modifier, je mettrai les modifications ici quand ce sera fait)

    Merci pour votre aide en tout cas!

    Edit modif du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    <?php
    #######################################################
    #           SCRIPT DE CONVERSION DE BDD               #
    #               INTERBASE -> MYSQL                    #
    #             le 08/11/2007 par Silk                  #
    #            (trooper@libertysurf.fr)                 #
    #######################################################
    #######################################################
    #		Modifié par Richard Rondu le 05/03/2009
    #       Modifs : Création automatique de la base
    # 		en latin1 (plus besoin de réencodé en utf8
    #		email : richardr@fedoraproject.org
    #######################################################
    #FONCTIONS
    function TypeChamp ($champ,$taille) {
        switch ($champ) {
         case 7:
         return array('SMALLINT',$taille);
         break;
         case 8:
         return array('INT',$taille);
         break;
         case 16:
         return array('BIGINT',$taille);
         break;
         case 10:
         return array('FLOAT','');
         break;
         case 11:
         //return 'D_Float';
         return 'erreur';
         break;
         case 27:
         return array('DOUBLE','');
         break;
         case 9:
         //return 'Quad';
         return 'erreur';
         break;
         case 14:
         return array('CHAR',$taille);
         break;
         case 37:
         return array('VARCHAR',$taille);
         break;
         case 40:
         //return 'CString';
         return 'erreur';
         break;
         case 13:
         return array('TIME','');
         break;
         case 12:
         return array('DATE','');
         break;
         case 35:
         return array('TIMESTAMP','');
         break;
         case 261:
         return array('BLOB','');
         break;
        }
    }
    #FIN FONCTIONS
    #PARAMETRES
    //C'est ici que vous devez entrer les paramètres de connexions aux BDD InterBase et MySQL
    //Assurez-vous d'avoir un serveur InterBase (ex: Firebird) et MySQL (ex: EasyPHP, WAMP) en activité.
    //PARAMETRES INTERBASE
      $hote = '127.0.0.1:C:\PRESLES2.GDB'; //On se connecte au fichier (ici, il se trouve à la racine de C:)
      $utilisateur = 'SYSDBA'; //User par défaut
      $passe ='masterkey'; //Pass par défaut
      $bdd_interbase = ibase_connect($hote, $utilisateur, $passe, 'ISO8859_1'); //Connexion
    //PARAMETRES MYSQL
      $hote_mysql = 'localhost';
      $utilisateur_mysql = 'root';
      $passe_mysql = '';
      $nom_mysql = 'repair3'; //Nom de la BDD MySQL
      $bdd_mysql = mysql_connect($hote_mysql,$utilisateur_mysql,$passe_mysql);
      mysql_query("CREATE DATABASE ". $nom_mysql ." CHARACTER SET latin1;"); //Modif : Création auto de la base en latin1
      mysql_select_db($nom_mysql,$bdd_mysql);
    #FIN PARAMETRES
    //ON PARCOURT LA BDD INTERBASE
      $requete = 'SELECT DISTINCT rdb$relation_name FROM rdb$relation_fields
    WHERE rdb$view_context IS NULL
      AND rdb$system_flag = 0'; //Injection de la requête permettant de récupérer les tables
      $resultat = ibase_query($bdd_interbase, $requete);
      while ($ligne = ibase_fetch_assoc($resultat)) {
        foreach ($ligne AS $table) {
        echo "<br><b>".$table."</b><br>";
        $req_struc_table = 'SELECT *
                            FROM rdb$relations rel
                              JOIN rdb$relation_fields rel_field
                                ON rel_field.rdb$relation_name = rel.rdb$relation_name
                              JOIN rdb$fields field
                                ON rel_field.rdb$field_source = field.rdb$field_name
                            WHERE rel.rdb$relation_name = \''.$table.'\'
                            ORDER BY rel_field.rdb$field_position, rel_field.rdb$field_name';
           $res_struc_table = ibase_query($req_struc_table);
           //Construction de la requête de création de la table
           $req_create_table = "CREATE TABLE `".trim($table)."` (";
           while ($tab_struc_table = ibase_fetch_assoc($res_struc_table)) {
             $struct_champ = TypeChamp($tab_struc_table['RDB$FIELD_TYPE'],$tab_struc_table['RDB$FIELD_LENGTH']);
             if ($prem) {
                $req_create_table .= " , ";
             } else { $prem = 1; }
             $req_create_table .= "`".trim($tab_struc_table['RDB$FIELD_NAME'])."` ".$struct_champ[0];
             if ($struct_champ[1]) {
                $req_create_table .= "(".$struct_champ[1].")";
             }
             if ($tab_struc_table['RDB$NULL_FLAG'] == 0) {
                $req_create_table .= " NULL";
             } else {
                $req_create_table .= " NOT NULL";
             }
           }
           $req_create_table .= ") ENGINE = MYISAM";
           unset($prem);
           mysql_query($req_create_table) or die ("Impossible de créer la table : ".mysql_error()."<br>Requete : ".$req_create_table);
           //echo "<br>";
           ibase_free_result($res_struc_table);
           $requete2 = 'SELECT * FROM '.$table; //On récupère les champs de la table et leurs valeurs
           $resultat2 = ibase_query($bdd_interbase, $requete2);
           while ($ligne2 = ibase_fetch_assoc($resultat2)) {
              //Construction de la requête d'insertion des données
              $req_insert = "INSERT INTO `".trim($table)."` SET ";
              foreach ($ligne2 AS $champ => $valeur) {
                if ($prem) {
                   $req_insert .= " , ";
                } else { $prem = 1; }
                #Correction des valeurs texte
                $valeur = str_replace("\'","'",$valeur);
                #//$valeur = utf8_encode($valeur); // Modif : Plus besoin d'encoder en utf8
                $req_insert .= "`".$champ."`='".addslashes($valeur)."'";
              }
              unset($prem);
              mysql_query($req_insert) or die ("Insertion impossible : ".mysql_error()."<br>Requete : ".$req_insert);
              //echo "<br>";
           }
           ibase_free_result($resultat2);
        }
      }
      ibase_free_result($resultat);
      ibase_close($bdd_interbase);
    ?>
    Spacelex.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,

    J'ai essayé le script, mais il doit y avoir un truc que je n'ai pas pigé.

    En effet, je le lance, puis quand je vais dans mysql, je vois bien la base créé (avec le nom que je lui ai donné dans le script). Par contre, il n'y a pas de tables dedans :'(

    Je sais que j'ai eu des soucis avec firebird puisque la dernière version httpd ne prenait pas en compte interbase (problème de dll interbase non présente) = j'avais un message d'erreur avec interbase connect non reconnu => j'ai refait l'opération sous linux, installé le module interbase, Là, pas de message d'erreur, mais je me demande si cela ne viendrait pas du même genre de soucis (pas de connexion effective à la base firebird)

    pourtant, quand je fais PHP info, j'obtiens bien :

    interbase
    Firebird/InterBase Support dynamic
    Compile-time Client Library Version Firebird API version 21
    Run-time Client Library Version LI-V6.3.0.26054 Firebird 2.5 Release Candidate 3

    Directive Local Value Master Value
    ibase.allow_persistent On On
    ibase.dateformat %Y-%m-%d %Y-%m-%d
    ibase.default_charset no value no value
    ibase.default_db no value no value
    ibase.default_password no value no value
    ibase.default_user no value no value
    ibase.max_links Unlimited Unlimited
    ibase.max_persistent Unlimited Unlimited
    ibase.timeformat %H:%M:%S %H:%M:%S
    ibase.timestampformat %Y-%m-%d %H:%M:%S %Y-%m-%d %H:%M:%S
    Des idées ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Migration d'un base de données Interbase vers MySQL
    Par benyamin139 dans le forum InterBase
    Réponses: 0
    Dernier message: 27/12/2010, 13h10
  2. importation de table, interbase vers mysql
    Par gerald57 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/05/2008, 10h36
  3. Connexion depuis LAN impossible vers Mysql sur RH8
    Par RamDevTeam dans le forum Administration
    Réponses: 4
    Dernier message: 10/02/2005, 16h28
  4. Transefert de données de DBASE IV vers Mysql
    Par sessime dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 10h43
  5. Export base Access vers MySql
    Par jjn1er dans le forum Outils
    Réponses: 7
    Dernier message: 11/03/2003, 00h50

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