[mysql] passer de myisam a innodb

Le
GanGan
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.

--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
bougie bougie
Le #19167701
--001636c59716fc0afe046824cac4
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

---------- Message transféré ----------
De : bougie bougie Date : 22 avril 2009 15:31
Objet : Re: [mysql] passer de myisam a innodb
À : GanGan

Deja, il faudrait que tu exportes ta base qui est en prod pour pouvoir fair e
des testes sans tout casser.

Le 22 avril 2009 14:53, GanGan

bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée ma is y
a peut etre mieux.

--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS





--001636c59716fc0afe046824cac4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br>
Date : 22 avril 2009 15:31 <br>
<div>
<div></div>
<div class="h5"><br>
myisam qui faudrai que je transforme en innodb / ``spam&#39;&#39; dans vos champs &quot;From&quot; et &quot;Reply-To:&quot; En cas de soucis, contactez EN ANGLAIS
--001636c59716fc0afe046824cac4--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Franck Delage
Le #19167691
GanGan a écrit :
|
| bonjour les amis !!

salut,

| j'ai un truc farfelu a faire transformer : une base mysql avec des tables
| myisam qui faudrai que je transforme en innodb

mais pourquoi donc ? le seul intérêt est l'utililsation des clés étrangères,
mais tu perds en performance.

| comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
| a peut etre mieux.

moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump, puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu
réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas l'impression.

--
Franck Delage
Création et hébergements de sites web
www.web82.net

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Julien Reitzel
Le #19167911
Franck Delage a écrit :
moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump, puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu
réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas l'impression.




Je dis peut-être une bêtise, mais
ALTER TABLE `matable` ENGINE = InnoDB


--
Julien.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Glennie Vignarajah
Le #19167901
--Boundary-00=_cBy7JYFgYLMd2m/
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Le Wednesday 22 April 2009, GanGan(GanGan écrit:
bonjour les amis !!



Bonjour,

j'ai un truc farfelu a faire transformer : une base mysql avec des
tables myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idà ©e
mais y a peut etre mieux.



La commande sql 'alter table toto Engine=innodb ;' permet de passer
la base en innoDB.
Attention : il vaut mieux avoir des backups sous la main...

Une bonne solution est :
* Dummper la base avec mysqldump : mysqldump --database=toto >
toto.dump
* sed -i.MyIsam -e 's/ ENGINE=MyISAM / ENGINE=InnoDB /g' toto.dump
: cela vous permettra de disposer dans le fichier toto.dump.MyIsam la
structure et les données au format MyIsam et dans le fichier la
structure et les données format innoDB.

* Restaurer les données puis vérifier que la structure a bien
changée par 'show create table LA_TABLE'

A+

Il suffit ensuite de restaurer soit l'un ou l'autre fichier.

--
http://www.glennie.fr
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.


--Boundary-00=_cBy7JYFgYLMd2m/
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

&gt; bonjour les amis !!<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>Bonjour,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>&gt; j'ai un truc farfelu a faire transformer : une b ase mysql avec des<br>
&gt; tables myisam qui faudrai que je transforme en innodb<br>
&gt; comment feriez vous ça ? la base est en prod :s j'ai bien une id ée<br>
&gt; mais y a peut etre mieux.<br>
Attention : il vaut mieux avoir des backups sous la main...<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p> Une bonne solution est :<br>
* Dummper la base avec mysqldump : mysqldump --database=toto &gt; toto. dump<br>
* sed -i.MyIsam -e 's/ ENGINE=MyISAM / ENGINE=InnoDB /g' toto.dump : cela vous permettra de disposer dans le fichier toto.dump.MyIsam la structu re et les données au format MyIsam et dans le fichier la structure et les données format innoDB.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p> * Restaurer les données puis vérifier que la structure a bien changée par 'show create table LA_TABLE'<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>A+<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>-- <br>
http://www.glennie.fr<br>
The reasonable man adapts himself to the world; the unreasonable one persis ts in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p></body></html>
--Boundary-00=_cBy7JYFgYLMd2m/--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Edi Stojicevic
Le #19167891
* GanGan

bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.



Et si tu exposais ton idée ?

--
. ''`. (___/) E d i S T O J I C E V I C
: :' : (='.'=) http://www.debianworld.org
`. `~' (")_(") GPG: 0x1237B032
`-

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
GanGan
Le #19167971
ouhai j'avais deja fais cette technique, je voulais en voir émerger une
autre !
avec phpmyadmin on peut faire ca ?

On Wed, 22 Apr 2009 15:42:28 +0200, Julien Reitzel wrote:
Franck Delage a écrit :
moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump,


puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu



réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à


ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou


mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas


l'impression.




Je dis peut-être une bêtise, mais
ALTER TABLE `matable` ENGINE = InnoDB


--
Julien.




--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Franck Delage
Le #19168151
GanGan a écrit :
|
| ouhai j'avais deja fais cette technique, je voulais en voir émerger une
| autre !

je vois pas ce que vous avez avec cette technique. elle n'a rien de bourrin.
en plus on travaille sur un backup, et pas directement sur la base comme
avec phpmyadmin, où on devrait en plus le faire table par table.

--
Franck Delage
Création et hébergements de sites web
www.web82.net

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Romaric DEFAUX
Le #19168141
GanGan a écrit :
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.




Juste deux p'tits conseils, avant de modifier tes tables (on sait jamais) :
- l'option innodb_file_per_table permet d'éviter d'avoir 1 seul gros fichier
- fait attention à la manière dont tu fais tes backups (si tu en fais :D
), si tu copies juste les fichiers de /var/lib/mysql je te conseillerais
plutôt d'utiliser mysqldump à l'avenir ;)

A+

Romaric




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
François Boisson
Le #19168961
Le Wed, 22 Apr 2009 16:32:26 +0200
Franck Delage
je vois pas ce que vous avez avec cette technique. elle n'a rien de bourrin.
en plus on travaille sur un backup, et pas directement sur la base comme
avec phpmyadmin, où on devrait en plus le faire table par table.



Ils n'ont rien contre, tout le monde la suggère et de toute façon un backup de
la base s'impose.

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
François Cerbelle
Le #19168951
GanGan a écrit :
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.




Quelle que soit la solution que tu choisis, penses à regarder les contraintes imposées par le
stockage (les datafiles peuvent grandir, mais pas être réduits ensuite...)

Fanfan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Publicité
Poster une réponse
Anonyme