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 :

Migration de Access vers un autre SGBD gratuit


Sujet :

Migration SGBD

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut Migration de Access vers un autre SGBD gratuit
    Bonsoir

    Je viens de réaliser une application java qui est en communication avec une base de donnée Access.

    Mon problème est que je veux migrer vers un autre SGBD gratuit, et sans être obligé à changer toutes mes requetes SQL dans mon programme java, sachant que pour l'instant le seul SGBD que je connais est Access, et que même en Access je ne suis pas très pro ...

    Les besoins de ma base de données ne sont pas très poussés, j'ai juste besoin d'avoir un outil me permettant de créer des tables et d'effectuer mes jointures (relations) entre ces tables tout en conservant l'integrité référentielle des données.

    Bien entendu la nouvelle base de données doit être "compatible" avec le language java, et si possible (pas tout à fait necessaire) utilisables dans différents systèmes d'exploitations.

    Un lien de telechargement avec un petit tutorial sera très apprécié.

    merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Re

    Je viens de tomber sur PostgreSQL et mySQL workbench après une petite recherche sur internet, lequel des des deux me conseillez vous?

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Bon j'ai choisi mysql au hazard.

    Après plusieurs recherches un peu partout sur internet, j'ai procédé ainsi:

    j'ai téléchargé mysql puis je l'ai installé, voici le lien de telechargement :

    http://dev.mysql.com/get/Downloads/M....msi/from/pick

    lors de l'installation j'ai mis comme mot de passe "javalait"

    j'ai lancé la console de mysql ""Mysql Command Line Client", et après avoir tapé mon mot de passe voici les commandes que j'ai utilisé pour créer une base d'essai:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mysql> create database essai1;
    Query OK, 1 row affected (0.00 sec)
     
    mysql> use essai1;
    Database changed
     
    mysql> create table femelle(id_femelle bigint);
    Query OK, 0 rows affected (0.11 sec)
    - j'ai fermé la console.

    - j'ai téléchargé le fichier mysql-connector-java-5.0.8-bin.jar, et je l'ai copier dans le dossier d'un projet d'essai, j'utilise eclipse.

    - j'ai ajouté ce fichier au class path de mon projet d'essai sous eclipse.

    enfin voici le code java compilable que j'ai utilisé pour tester la connexion:
    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
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
     
    public class essai {
    	public static Connection con=null;
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		connect();
    		disconnect();
     
    	}
     
    	public static void disconnect(){
    		try {
    			con.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public static void connect(){
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			con = DriverManager.getConnection("jdbc:mysql:essai","root","javalait");
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
     
     
    	}
     
    }
    et biensure comme d'habitude rien ne marche sans demande d'aide, l'execution de ce programme génére l'exception suivante:

    java.sql.SQLException: No suitable driver found for jdbc:mysql:essai
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)

    je compte sur votre aide car là je sèche

    merci d'avance

  4. #4
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    je pose les question et je réponds tout seul

    il s'agissait d'ajouter "///" avant essai1, et ca marche nickel.


    maintenant il me reste une dernière question, dans quel endroit mysql stock les bases de données??

    j'ai bien fouillé sur internet mais j'ai rien trouvé la dessus.

    En fait je pose cette question car je compte archiver le fichier de la base dans le fichier d'installation que je créerai plus tard avec inno setup (enfin si c'est faisable).

    Si quelqu'un a une idée je suis preneur .

  5. #5
    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
    Citation Envoyé par master_och Voir le message
    Les besoins de ma base de données ne sont pas très poussés, j'ai juste besoin d'avoir un outil me permettant de créer des tables et d'effectuer mes jointures (relations) entre ces tables tout en conservant l'integrité référentielle des données.
    Tu as choisi MySQL.
    Sache quand même que pour conserver l'intégrité référentielle des données, tu dois utiliser pour tes tables le moteur InnoDB car le moteur par défaut MyIsam se fiche complètement des clés étrangères et de leurs contraintes.

    Dès lors, les données des tables InnoDB sont stockées de façon assez abstraites, toutes ensemble dans un seul fichier. Mais les formats des tables sont stockés dans des fichiers individuels, comme pour les tables MyIsam.

    Sous Linux, les données sont stockées dans /var/lib/mysql.
    Sous Winbug, je ne sais pas. Ca doit quand même pouvoir se trouver ce genre d'info !
    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 !

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Bonjour CinePhil

    merci pour l'info concernant innodb , heureusement que tu l'as signalé .


    Sous Winbug, je ne sais pas. Ca doit quand même pouvoir se trouver ce genre d'info !
    Pourtant j'ai bien cherché sans aucun succès, ce sera très simpa si tu me renseigne sur l'emplacement sous windows, j'ai même fait une recherche sur mon disque dur en utilisant le nom de la base comme mot clé sans rien trouver !

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    je viens de localiser l'emplacement de la base, le chemin d'accès se trouve dans le fichier my.ini juste devant datadir.

    reste maintenant à savoir quelles sont les modifications à faire, pour permettre la connexion à la base, après avoir changé son emplacement (par exemple sous C: ).

    quelqu'un a-t-il une idée??

  8. #8
    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 master_och Voir le message
    Mon problème est que je veux migrer vers un autre SGBD gratuit, et sans être obligé à changer toutes mes requetes SQL dans mon programme java, sachant que pour l'instant le seul SGBD que je connais est Access, et que même en Access je ne suis pas très pro ...
    Pour info :
    - MySQL n'est pas gratuit
    - MySQL n'est pas un SGDB proche de la norme SQL même si ça évolue un peu

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Bonjour VLDG

    Comment ca MySQL n'est pas gratuit?? je l'ai téléchargé à partir de son site officiel sans rien payer. Pourras tu concrétiser un peu les choses stp ?? ce sera vraiment apprécié

    MySQL n'est pas un SGDB proche de la norme SQL même si ça évolue un peu
    Même si je ne suis pas sur d'avoir bien compris, mais j'ai bien testé quelques requetes sql simples sur mysql et ca fonctionne parfaitement, alors là encore je vais te demander de m'éclaircir car comme je l'ai déjà dit je suis nouveau dans le domaine des bases de données, et j'arrive pas à comprendre ce que vous entendez dire ...

  10. #10
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Sous windows c'est soit sous program files/mysql/mysql 5.1/ soit sous Documents and settings/all users/Application data/mysql (de mémoire).

    Il faut finir tes create table par engine=innodb pour être sur. Mais l'installateur windows permet en général de le mettre par défaut pour peu qu'on ait indiqué que l'on voulait du transactionnel.


    Sous windows je vous conseil d'utiliser Toad pour la gestion de la base, c'est un freeware (moins bon que son grand frère pour Oracle, mais bon quand même). Ne faites pas de sauvegarde de la base en copiant les fichiers (ça ne marchera sans doute pas pour innodb). Utilisez mysqldump.

  11. #11
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Bonjour Jester

    Concernant l'emplacement de la base c'est bon je l'ai déjà trouvé mais sans avoir la possibilité de changer cet emplacement ca ne servira à rien.

    Concernant le truc de innodb je l'ai fait mais en terminant mes create table par "type = innodb", devrai-je le remplacer par "engine = innodb" ??
    Sinon si c'est pas trop long à expliquer pouvez vous me dire c'est quoi au juste "innodb" et "myIssam"?

    Sous windows je vous conseil d'utiliser Toad pour la gestion de la base, c'est un freeware (moins bon que son grand frère pour Oracle, mais bon quand même). Ne faites pas de sauvegarde de la base en copiant les fichiers (ça ne marchera sans doute pas pour innodb). Utilisez mysqldump.
    Pourquoi Toad ? MySQL ne pourras-t-il pas faire l'affaire?? je n'ai arrivé à un peu familiariser avec cet SGBD et à le connecter avec mon programme qu'après une grande galère, et si c'est possible de cotinuer avec je préférerai éviter une autre galère ...


    Pour ce qui est de la sauvegarde de la BD, j'ai posé cette question car je réfléchit en même temps au fichier d'installation que je vais créer plus tard, qui va archiver tout (executable + icones + fichiers son + la base de donnée) dans un emplacement inconnu à l'avance, c'est pour ca que je veux pas que mon code source dépende du chemin d'accès imposé par mysql ...

    Enfin à propos de mysqldump, ça semble être la solution mais comment l'utiliser? et d'ailleur à quoi ca sert exactement ?

    voilà je vais quand même pas oublier de te remercier fort pour tes instructions

  12. #12
    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
    Citation Envoyé par master_och Voir le message
    Concernant le truc de innodb je l'ai fait mais en terminant mes create table par "type = innodb", devrai-je le remplacer par "engine = innodb" ??
    Si j'en crois la documentation MySQL, TYPE=InnoDB et ENGINE=InnoDB sont équivalents.

    Sinon si c'est pas trop long à expliquer pouvez vous me dire c'est quoi au juste "innodb" et "myIssam"?
    InnoDB et MyIsam sont deux moteurs différents utilisés par MySQL pour gérer les tables.

    Pourquoi Toad ? MySQL ne pourras-t-il pas faire l'affaire?? je n'ai arrivé à un peu familiariser avec cet SGBD et à le connecter avec mon programme qu'après une grande galère, et si c'est possible de cotinuer avec je préférerai éviter une autre galère ...
    Toad, comme phpMyAdmin, est une outil qui permet de gérer facilement les bases de données MySQL.
    Bien sûr, tu peux utiliser MySQL en ligne de commande mais un outil graphique c'est souvent plus pratique.

    Enfin à propos de mysqldump, ça semble être la solution mais comment l'utiliser? et d'ailleur à quoi ca sert exactement ?
    Ca sert à sauvegarder les bases de données.
    Avec des tables InnoDB, c'est même le seul moyen gratuit et pratique de le faire je crois.
    ==> mysqldump

    Les différents liens que j'ai postés sont trouvable en quelques secondes avec une recherche sur Google.
    Cherche un peu avant de poser les questions quand même !
    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 !

  13. #13
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Citation Envoyé par master_och Voir le message
    Concernant l'emplacement de la base c'est bon je l'ai déjà trouvé mais sans avoir la possibilité de changer cet emplacement ca ne servira à rien.
    Il fallait poser la bonne question (ou j'ai mal lu) :-). Dans Program Files/mysql/mysql server 5.1, il y a un mysql.ini, le chemin de la base est donné par la variable datadir.

  14. #14
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    CinePhil

    merci bien pour les infos et les liens, mais en fait je fait bien des recherches avant et après avoir posé mes questions, mais lorsque je m'apercois que ma recherche peut m'enmener à lire des trucs hors sujets, et que ca s'avert trop long, je m'adresse tout simplement au forum, et c'est tout à fait le but du forum à ce que je sache ...

    t'as peu-être-trouvé rapidement les liens parce que tu es bien expérimenté, et tu sais exactement ce que t'as besoin de trouver, pour moi c'est pas le cas .

  15. #15
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Il fallait poser la bonne question (ou j'ai mal lu) :-). Dans Program Files/mysql/mysql server 5.1, il y a un mysql.ini, le chemin de la base est donné par la variable datadir.
    Oui tout à fait d'accor avec ca, pas de soucis.

    Bon je vais décrire de A jusqu'à Z, où est ce que je veux-en arriver avec mes questions:

    - j'ai créé une application java pour la gestion de l'elevage des vaches http://www.developpez.net/forums/d76...tion-delevage/

    - j'ai terminé avec la programmation y a environ 3 ou 4 jours, vu que je compte commercialiser mon projet tout doit être bien fait.

    Je cherche donc tout d'abord à migrer vers une base de données 100% gratuite pour éviter tout genre de problème.

    ensuite il faut un fichier exécutable d'installation, qui doit être simple d'utilisation. (celui qui va installer le programme ne devra pas se soucier de la connexion avec la base ca devra être automatisé dans le package d'installtion)
    et c'est pour ca que je veux rendre mon programme capable de se connecter avec la BD peu n'importe où elle se trouve.

    après je devrai créer une version trial, et là j'ai réfléchit au début à réaliser cette version par programmation en vérifiant si la date d'aujourd'hui appartient à un interval de temps ou non, et selon le résultat le programme fonctionnera ou pas, mais je ne sais pas si c'est une bonne idée, et là encore j'ai besoin de vos conseils .

    voilà enfin je dois générer une version complète avec une license "officiel" si c'est le bon terme, mais je n'ai encore aucune idée la dessus.

    Tout ces trucs me sont trop flou pour l'instant, et je compte sur votre aide pour m'en sortir.

  16. #16
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Essaie avec la base de données H2 ou HSQLDB ou Derby, ce sera plus simple pour l'installation, il n'y en aura pas ce sont des lib java. J'ai une préférence pour H2 mais derby est peut-être plus classique (vu que c'est maintenant javadb intégré à java directement).

  17. #17
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    D'accor je suis entrain de telecharger Derby, j'éspère que ce sera pas très difficile à utiliser.

    Merci bien l'ami

  18. #18
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    juste une question avant de commencer avec Derby.

    l'utilisateur de l'application aura-t-il la possibilité avec cet outil, de mettre à jour sa base de données (dans son ordinateur à domicile par exemple), en faisant un simple copier coller à partir du PC de travail (à traver une clé USB par exemple) ??

  19. #19
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Pas sans perdre les données qu'il avait déjà. Dans ce cas ça ne semble pas dérangeant.

    A noter que je ne suis pas 100% sur, mais normalement oui.

  20. #20
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Points : 64
    Points
    64
    Par défaut
    Pas sans perdre les données qu'il avait déjà
    S'il veut conserver les données qu'il a déjà il peut bien les copier ailleur ...

    Merci bien pour l'info. je te tiens au courant dès que j'essais le truc

Discussions similaires

  1. [AC-2010] Migrer une base access vers un autre SGBD
    Par lololebricoleur dans le forum Access
    Réponses: 7
    Dernier message: 08/02/2015, 11h57
  2. conseil sur migration de access vers mysql
    Par jarod71 dans le forum Migration
    Réponses: 1
    Dernier message: 21/01/2007, 20h44
  3. Migration Formulaire Access vers VB
    Par Thiazung dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/12/2006, 11h32
  4. Migration de Access vers SGBD serveur
    Par soso78 dans le forum Migration
    Réponses: 1
    Dernier message: 28/06/2006, 12h12
  5. [Migration] Access vers quelle autre SGBD ?
    Par u_polet dans le forum Migration
    Réponses: 3
    Dernier message: 24/03/2006, 09h29

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