Migration vers MySQL ?????

Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
- - Dernière réponse : cs_globule
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
- 14 juil. 2006 à 19:42
J’ai récemment posé une question sur le forum VBfrance concernant le remplacement des bases Access par une autre base plus solide et supportant le client/serveur, sans que cela ait un coût pour mes clients.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 




SQLServeur étant trop cher (la version gratuite est limitée a 4Go …) on m’a conseillé MySql.



 




Cependant, je viens de voir sur un site que MySQL n’était pas adapté à des gros volumes. Je cherche donc les conseilles de personnes qui l’utilisent dans le cadre professionnel, avec des grosses bases (20 a 50 Go …) en client/serveur. MySQL tient t’il le cou ?



 




Avez-vous des exemples en VB6 ou VB.NET (car on va tous être obligé de migrer …)



 




De plus j’ai vu qu’il existe des DLL pour l’attaquer directement. J’ai également vu que c’était possible avec ODBC. Quelle est la meilleure méthode ? Sachant que je ne peux pas prendre le risque d’intégrer quelque chose qui ne sera plus maintenu ou développé par un particulier (Merci à MS pour l’abandon du VB6 …)



 




Merci
Afficher la suite 

20/49 réponses

Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Ok, j'ai essayé de sauvegarder directement le repertoire de ma base de données
ainsi que
ib_logfile0
ib_lofile1
ibdata1
Mais comment fait on pour les restaurer ?
Je n'arrive pas a arreter le serveur MySQL (je travail en local)
J'ai essayé quit, exit, shutdown en ligne de commande. Rien ne fonctionne.
Comment arrête t'on le serveur MySQL ?

D'autres part je suis surpris de voir que la taille de ma base MySQL fait le double de ma base Access.
Exise t'il un moyen de reindexer les bases MySQL pour supprimer les enregistrements temporaires ?

Enfin, j'ai essayé MySQL dump, que j'utilise egalement depuis des années sur mon serveur dédis pour sauvegarder ma base MySQL/PHP. Je viens de me rendre compte que la restauration ne fonctione pas. De plus je ne peux pas arreter mon serveur MySQL sur mon serveur dedié.
C'est tres inquietant, cela signifie que aucune de mes sauvegardes est valide !
Commenter la réponse de cs_globule
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Ok,
j'ai reussi a stopper MySQL avec la ligne suivante
mysqladmin -u root -pMONPASS shutdown

Mais comment on le relance ?
Même en redemarrant ca ne fonctionne pas
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Merci pour l'info, en fait, j'ai jamais  essayé d'arêtier mysql manuellement sous Windows.

Pour le démarrer tu exécutes mysqld .
Demarrer > exécuter > "C:\Program files\MySQL\MySQL Server 5.0\bin\mysqld"  (avec les guillemets)

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Masi je n'ai pas de mysqld, le seul fichier qui se rapproche mysqld-nt.exe
J'ai essayé de cliquer sur tous les fichiers du repertoire BIN.
MySQL ne se lance plus, je ne peux même plus me connecter en localhost
Plus rien ne fonctionne depuis que j'ai fait ce shutdown
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Ah ok, dans ce cas tu démarres mysql en tant que service windows :
Essaye la commande NET START MySQL, sinon tu dois ouvrir le gestionnaire Windows Service Control Manager et de démarrer mysql.
Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
En, fait je viens de découvrir que cela venait de la copie que j'ai fait de mes bases

Je viens de tester sur une autre machine ou il y avait MySQL server

J'ai démarré en mode sans échec
J'ai copié les fichiers suivants
le répertoire de ma base de données
ainsi que
ib_logfile0
ib_logfile1
ibdata1

Vous etes certains qu'il ne faut pas copier que ibdata1et le repertoire de ma base de données

Je redemarré en mode normal, et plus rien ne fonctionne.
Impossible de me connecter en local host
Ca détruit MySQL server

C'est désespérant, j'ai absolument besoin d'installer facilement des grosses bases de données chez mes clients et en plus cela doit être rapide.


Je n’ai pas besoin de sécurité, j’ai besoin de facilité et de rapidité

MySQLDump ne fonctionne pas (ms bases contiennent des blobs …)

Comment faire, je suis totalement désespéré du temps que je passe sur un truc qui nécessitait 30 secondes avec des bases access.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Vous avez oublié le répertoire Mysql (c'est la structure de base de mysql il contient les utilisateurs les schémas ...., notez qu'il est créé automatiquement lors de l'installation de mysql).


Pour la sauvegarde avec prise en charge du type blob d'après la documentation il faut ajouter --hex-blob à ta syntaxe, cependant la sauvegarde binaire et le meilleur moyen (il n'est pas nécessaire de redémarrer en mode sans echec pour la faire).
http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html


Il ne faut pas désespérer, le nécessaire c'est d'arriver à un bon résultat qui sera bénéfique pour toi et à tes clients ce qu’access n'offre pas à long terme.


Bonne programmation.


Cordialement medelidrissi


<hr />

En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Effectivement avec le repertoire MySQL en plus ca fonctionne
Merci beaucoup

Par contre je n'arrive toujours pas a relancer mon serveur manuellement
J'utilise MySQL Server 5.0
j'ai dans le repertoire BIN les fichiers suivants
my_print_defaults.exe
myisam_ftdump.exe
myisamchk.exe
myisamlog.exe
myisampack.exe
mysql.exe
mysqladmin.exe
mysqlbinlog.exe
mysqlcheck.exe
mysqld-nt.exe
mysqldump.exe
mysqlimport.exe
mysqlshow.exe
perror.exe

MySQLInstanceConfig.exe
libmySQL.dll

J'ai essayé de cliquer sur tous, mais impossible de relancer le serveur (je travaille en root). Je suis obligé de redemarrer ma machine

Encore une petite question.
Existe t'il une procedure de réindexation ou de compactage des bases sous MySQL. Je sais que c'etait une opération que je devais faire regulierement sous Access, je ne vois pas d'equivalent sous MySQL.
Commenter la réponse de cs_globule
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Malheureusement je me suis embalé trop vite
Cette technique ne fonctionne pas sur un autre poste.
Cela detruit MySQL et la seul facon de le refaire marcher et de le desinstaller et de le reinstaller.
Vous etes certains qu'il n'y a pas d'autres fichiers a copier ?

Faut-il créer la base et toutes les tables dedant avant de copier le repertoire.
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Je pense que le prob vient de la version Windows que tu utilises, si j'ai bien compris vous utilisez Windows NT, alors lors du test soit vous le faites sur une autre version de Windows ce qui a priori vous cause des probs ou bien vous utilisez la même version NT mais vous négligez peut être les droits d'accès.

En ce qui concerne le démarrage de mysql, je ne sais pas si vous avez essayé la démarche précitée concernant le démarrage d'un service sous Windows, sous windows Xp il ya 2 moyen la premier c'est l'utilisation de la commande dos NET START "Nom du Service", ou bien par l'intermédiaire du gestionnaire de service services.msc. Essaye de voir l'équivalence dans ta version Windows et recherche le service correspondant à mysql.

Prière de me dire sous quel windows vous travaillez.
Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Non, j'utilise du Windows XP
J'ai réussi pour a faire marcher ma sauvegarde
J'utilise un MySQLDump pour l'archivage et MySQL tout court pour restaurer. Et ça fonctionne (même sur des grosses bases).
Il me reste juste le problème de relancer MySQL comme service
Je pense qu'il doit être possible d'appeler MySQL.exe ou MySQLAdmin.exe avec une ligne de commande pour faire ça, mais je n'ai pas encore trouvé.

J'ai également réglé mon problème de conversion de BLOB. J’avais une déconnexion lors de mon transfert car certains dépassaient les 1 mega
J'ai changé la valeur du fichier my.ini
[mysqld]
max_allowed_packet = 1M

en
[mysqld]
max_allowed_packet = 5M
et ça fonctionne.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 



Par contre la aussi, j'aimerais bien trouver une ligne de commande pour dire a MySQL de relire ce fichier de paramétrage sans redémarrer la machine (comme je n'arrive pas à le redémarrer après l'avoir arrêté)



 
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Mysql démarre avec le démarrage de Windows (autrement vous saurez le démarrer), alors,il est possible de voir comment Windows fait pour le lancer:
Demarrer > Executer > msconfig

Clique sur l'anglet démarra et regarde s’il y a un élément nommé mysql ...., si vous le trouvez, regardez dans la colonne commande vous trouverez comment Windows démarre mysql utilisez cette commande pour le démarreur.

Sinon regardez dans l'anglet service (ou bien Demarrer > Executer >services.msc) chercher un service dénommé mysql ...., notez le nom complet de ce service, si c'est le cas vous pouvez utilisez la commande suivante pour démarrer et arrêter mysql NET START "Nom du Service" et NET STOP"Nom du Service" (Attention cette commande ne marche que si mysql et considéré comme un service Windows, ce qui n'est pas mon cas).

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Pour my.ini je ne pense pas que ça sera possible de demander à mysql de prendre en charge les modifications apportées à ce fichier sans le redémarrer. Notez normalement vous allez voir qu'il faut spécifier l'emplacement de ce fichier au démarrage de mysql.

Prière de me dire si vous parvenez à démarrer mysql, et de me donner la commande qui permet de sauvegarder et de restaurer mysql en utilisant les commandes.
Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Il me reste un dernier problème
J'essaye d'installer MySQL manuellement, car tout doit être automatique pour mes utilisateurs
Je copie donc tous les fichiers et ça semble fonctionner.


Mais la ou j'ai du mal à comprendre c'est quoi faire apres


Je voudrais créer un service MySQL qui se lance au demarrage de Windows


Avec une instance "MySQL"


définie comme ceci
DSS


3306


Standard Character Set


Service Windows


Un mot de passe administrateur


L’accès root pour les clients



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 






J'ai essayé a la ligne suivante. L’instanceMySQL est bien créée mais je n'arrive pas à me connecter après

%DEST_MYSQL%\bin\MySQLInstanceConfig.exe -i -q ServerType=SERVER DatabaseType=MIXED ConnectionUsage=DSS Port=3306 ServiceName=MySQL RootPassword=MonPass



 




De plus j’ai essayé ça également


%DEST_MYSQL%\bin\mysqld.exe --install MySQL --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"


Ca fonctionne, mais comment définir le mot de passe administrateur et les autres options.



 




Bref je suis perdu
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Tout d'abord est-ce que bous avez parvenu à démarrer mysql, et avec quelle méthode.

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Tout d'abord est-ce que bous avez parvenu à démarrer mysql, et avec quelle méthode.

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Il y a deux cas
J'essaye
MySQLInstanceConfig.exe -i -q ServerType=SERVER DatabaseType=MIXED ConnectionUsage=DSS Port=3306 ServiceName=MySQL RootPassword=MonPass

Puis
NET START mysql

Et la il me repond que le nom du service n'est pas valide

Deuxieme cas (mais normallement le premier cas devrait suffir) :
mysqld.exe --install MySQL --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"

Puis
NET START mysql
Ca fonctionne mais

Mais, lorsque j'essaye d'ouvrir ma connexion j'ai le message suivant

Can't connect to mysql server (localhost)

Je n'arrive pas bien a comprendre si il faut utiliser les 2 commandes ou une seule. Elle semble faire la même chose, de plus mysqld.exe n'est plus livré dans la version MySQLEssential
Commenter la réponse de cs_globule
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Je viens de reussir

J'ai crée un fichier my-template.ini avant

MySQLInstanceConfig.exe -i -q "-lC:\mysql_install_log.txt" "-tC:\Program Files\MySQL\MySQL Server 5.0\my-template.ini" ServerType=SERVER DatabaseType=MIXED ConnectionUsage=DSS Port=3306 ServiceName=MySQL RootPassword=MonPassword

Mais, il reste different probleme.
en effet je constate que le fichier my.ini est vidé apres l'execution de cette ligne
Hors j'ai besoin de modifier ce dernier (pour changer la taille des blobs)

De plus je ne sais pas a quoi sert le fichier  my-template.ini
Commenter la réponse de cs_globule
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
0
Merci
Je pense que dans ce cas le fichier my-template.ini  sera utilisé comme fichier d'initialisation par défaut de mysql. Au lieu de my-template.ini essaye d'utiliser directement my.ini dans la création de l'instance, puis modifie-le à ta guise.

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
Commenter la réponse de medelidrissi
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Effectivement ca a l'air de fonctionner
Si je comprends bien
La bonne methode est de recuperer un my.ini configuré correctement.
de le transformer en my-template.ini
puis sur une nouvelle installation, de le copier dans le repertoire MySQL et d'executer
d:\MySQLInstanceConfig.exe -i -q "-lC:\mysql_install_log.txt" "-tC:\Program Files\MySQL\MySQL Server 5.0\my-template.ini" ServerType=SERVER DatabaseType=MIXED ConnectionUsage=DSS Port=3306 ServiceName=MySQL RootPassword=MonPass

Il y a encore un truc qui me pose probleme.

Est-ce que le my.ini généré automatiquement par MySQLInstanceConfig.exe en mode GUI (lancé sans option en ligne de commande) est toujours le même si on choisit toujours les mêmes options, ou depends t'il de la puissance de la machine sur laquelle il est crée.
Commenter la réponse de cs_globule