Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] question aux spécialistes mysql

6 réponses
Avatar
Thomas Clavier
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig61D37DFC005AD096F3E7F9D2
Content-Type: multipart/alternative;
boundary="------------050002050805060602090809"

This is a multi-part message in MIME format.
--------------050002050805060602090809
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour =E0 tous et d=E9sol=E9 pour le HS,

soit un insert en mass qui plante pour je ne sais pas trop quelle
raison, la table ma_table dans la base ma_base reste "lock=E9". Impossibl=
e
de relancer l'import. Ma table est en InnoDB.

Un second lancement me dit que que ma_base.ma_table n'existe pas (j'ai pl=
us
le message exacte sous la main)

Pour d=E9bloquer j'ai test=E9 :
- kill du script d'import
- relance de mysql
- mysqlcheck : il me r=E9pond que ma_base.ma_table n'existe pas=20
- drop database ma_base + create database; puis chargement d'un dump de
sauvegarde : ERROR 1005 (HY000) at line 11643: Can't create table
'ma_base.ma_table' (errno: 121)
- drop database + drop user, puis create database + create user, puis
chargement du dump et la =E7a fonctionne.

Quelqu'un peut m'expliquer pourquoi il faut faire un drop du user pour
pouvoir recr=E9er un objet dans une base toute neuve ?

pour info, la table en question c'est la table "catalogsearch_result"
d'un magento.

-- Thomas Clavier http://www.azae.net Jabber/XMPP/Gtalk :
tclavier@azae.net +33 (0)6 20 81 81 30

--=20
Thomas Clavier http://www.tcweb.org
Jabber/XMPP/MSN/Gtalk : tom@jabber.tcweb.org
+33 (0)6 20 81 81 30 +33 (0)950 783 783


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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv=3D"content-type" content=3D"text/html; charset=3DISO=
-8859-1">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
<div class=3D"moz-text-plain" wrap=3D"true" style=3D"font-family:
-moz-fixed; font-size: 12px;" lang=3D"x-western">
<pre wrap=3D""> Bonjour &agrave; tous et d&eacute;sol&eacute; po=
ur le HS,

soit un insert en mass qui plante pour je ne sais pas trop quelle
raison, la table ma_table dans la base ma_base reste "lock&eacute;". Impo=
ssible
de relancer l'import. Ma table est en InnoDB.

Un second lancement me dit que que ma_base.ma_table n'existe pas (j'ai pl=
us
le message exacte sous la main)

Pour d&eacute;bloquer j'ai test&eacute; :
- kill du script d'import
- relance de mysql
- mysqlcheck : il me r&eacute;pond que ma_base.ma_table n'existe pas=20
- drop database ma_base + create database; puis chargement d'un dump de
sauvegarde : ERROR 1005 (HY000) at line 11643: Can't create table
'ma_base.ma_table' (errno: 121)
- drop database + drop user, puis create database + create user, puis
chargement du dump et la &ccedil;a fonctionne.

Quelqu'un peut m'expliquer pourquoi il faut faire un drop du user pour
pouvoir recr&eacute;er un objet dans une base toute neuve ?

pour info, la table en question c'est la table "catalogsearch_result"
d'un magento.

<div class=3D"moz-txt-sig">--=20
Thomas Clavier <a class=3D"moz-txt-link-freetext" href=3D=
"http://www.azae.net">http://www.azae.net</a>
Jabber/XMPP/Gtalk : <a class=3D"moz-txt-link-abbreviated" href=
=3D"mailto:tclavier@azae.net">tclavier@azae.net</a>
+33 (0)6 20 81 81 30 =20


</div></pre>
</div>
<pre class=3D"moz-signature" cols=3D"72">--=20
Thomas Clavier <a class=3D"moz-txt-link-freetext" href=3D=
"http://www.tcweb.org">http://www.tcweb.org</a>
Jabber/XMPP/MSN/Gtalk : <a class=3D"moz-txt-link-abbreviated" href=
=3D"mailto:tom@jabber.tcweb.org">tom@jabber.tcweb.org</a>
+33 (0)6 20 81 81 30 +33 (0)950 783 783
</pre>
</body>
</html>

--------------050002050805060602090809--

--------------enig61D37DFC005AD096F3E7F9D2
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk7XrWwACgkQStsfiGuIVEOBmQCeIPX66Mf4pvynNcTJyxFK40vA
L6gAniH+c9FBT2XqezNOnVN5oUFidXE5
=WFZj
-----END PGP SIGNATURE-----

--------------enig61D37DFC005AD096F3E7F9D2--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

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
Archive: http://lists.debian.org/4ED7AD6C.1090601@tcweb.org

6 réponses

Avatar
Guillaume
Le jeu. 01 déc. 2011 17:38:04 CET, Thomas Clavier a écrit :
Bonjour à tous et désolé pour le HS,

soit un insert en mass qui plante pour je ne sais pas trop quelle
raison, la table ma_table dans la base ma_base reste "locké". Impossible
de relancer l'import. Ma table est en InnoDB.

Un second lancement me dit que que ma_base.ma_table n'existe pas (j'ai plus
le message exacte sous la main)

Pour débloquer j'ai testé :
- kill du script d'import
- relance de mysql
- mysqlcheck : il me répond que ma_base.ma_table n'existe pas
- drop database ma_base + create database; puis chargement d'un dump de
sauvegarde : ERROR 1005 (HY000) at line 11643: Can't create table
'ma_base.ma_table' (errno: 121)
- drop database + drop user, puis create database + create user, puis
chargement du dump et la ça fonctionne.

Quelqu'un peut m'expliquer pourquoi il faut faire un drop du user pour
pouvoir recréer un objet dans une base toute neuve ?

pour info, la table en question c'est la table "catalogsearch_result"
d'un magento.

-- Thomas Clavier http://www.azae.net Jabber/XMPP/Gtalk :
+33 (0)6 20 81 81 30




Tu peux donner les droits à une utilisateur uniquement sur une partie
des tables d'une base. C'était peut-être le cas ?
Il aurait fallu faire les tests suivants pour répondre :
Quand tu avais le message indiquant qu'il n'y avait pas la table
demandée, existait-elle bien ? Que donnait une insertion avec ton
utilisateur ? Si elle échouait, que donnait l'insertion avec root ?

Bonne soirée,
Guillaume

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Steven D
--0016e6de03a6a75f2004b30e6af2
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

L'InnoDb gère le mode transactionnel.
De faites à chaque update, ou insert la table est locké pour pas que
d'autre requêtes n’interfère.

Pour delocké la table, un unlock <table> suffit.

Pour trouver d'où vient ton problème de départ, peux-tu nous donner p lus de
précision sur ta requête de départ.

Steven



Le 1 décembre 2011 20:42, Guillaume a écrit :

Le jeu. 01 déc. 2011 17:38:04 CET, Thomas Clavier a écrit :

Bonjour à tous et désolé pour le HS,

soit un insert en mass qui plante pour je ne sais pas trop quelle
raison, la table ma_table dans la base ma_base reste "locké". Impossib le
de relancer l'import. Ma table est en InnoDB.

Un second lancement me dit que que ma_base.ma_table n'existe pas (j'ai
plus
le message exacte sous la main)

Pour débloquer j'ai testé :
- kill du script d'import
- relance de mysql
- mysqlcheck : il me répond que ma_base.ma_table n'existe pas
- drop database ma_base + create database; puis chargement d'un dump de
sauvegarde : ERROR 1005 (HY000) at line 11643: Can't create table
'ma_base.ma_table' (errno: 121)
- drop database + drop user, puis create database + create user, puis
chargement du dump et la ça fonctionne.

Quelqu'un peut m'expliquer pourquoi il faut faire un drop du user pour
pouvoir recréer un objet dans une base toute neuve ?

pour info, la table en question c'est la table "catalogsearch_result"
d'un magento.

-- Thomas Clavier http://www.azae.net Jabber/XMPP/Gtalk :
+33 (0)6 20 81 81 30




Tu peux donner les droits à une utilisateur uniquement sur une partie d es
tables d'une base. C'était peut-être le cas ?
Il aurait fallu faire les tests suivants pour répondre :
Quand tu avais le message indiquant qu'il n'y avait pas la table demand ée,
existait-elle bien ? Que donnait une insertion avec ton utilisateur ? Si
elle échouait, que donnait l'insertion avec root ?

Bonne soirée,
Guillaume

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/**FrenchLists<http://wiki.debian.org/fr/FrenchL ists>

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@**lists.debian.org<debian-user-french-REQ
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/**<http://lists.d ebian.org/





--0016e6de03a6a75f2004b30e6af2
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

L&#39;InnoDb gère le mode transactionnel.<br>De faites à chaque update, ou insert la table est locké pour pas que d&#39;autre requêtes n’int erfère.<br><br>Pour delocké la table, un unlock &lt;table&gt; suffit.<b r><br>Pour trouver d&#39;où vient ton problème de départ, peux-tu nou s donner plus de précision sur ta requête de départ.   <br clear= "all">
<br>Steven<br><br>
<br><br><div class="gmail_quote">Le 1 décembre 2011 20:42, Guillaume <s pan dir="ltr">&lt;<a href="mailto:">guillaume.l </a>&gt;</span> a écrit :<br><blockquote class="gmail_quot e" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;" >
Le jeu. 01 déc. 2011 17:38:04 CET, Thomas Clavier a écrit :<div class ="im"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1p x #ccc solid;padding-left:1ex">
    Bonjour à tous et désolé pour le HS,<br>
<br>
soit un insert en mass qui plante pour je ne sais pas trop quelle<br>
raison, la table ma_table dans la base ma_base reste &quot;locké&quot;. I mpossible<br>
de relancer l&#39;import. Ma table est en InnoDB.<br>
<br>
Un second lancement me dit que que ma_base.ma_table n&#39;existe pas (j&#39 ;ai plus<br>
le message exacte sous la main)<br>
<br>
Pour débloquer j&#39;ai testé :<br>
- kill du script d&#39;import<br>
- relance de mysql<br>
- mysqlcheck : il me répond que ma_base.ma_table n&#39;existe pas<br>
- drop database ma_base + create database; puis chargement d&#39;un dump de <br>
sauvegarde : ERROR 1005 (HY000) at line 11643: Can&#39;t create table<br>
&#39;ma_base.ma_table&#39; (errno: 121)<br>
- drop database + drop user, puis create database + create user, puis<br>
chargement du dump et la ça fonctionne.<br>
<br>
Quelqu&#39;un peut m&#39;expliquer pourquoi il faut faire un drop du user p our<br>
pouvoir recréer un objet dans une base toute neuve ?<br>
<br>
pour info, la table en question c&#39;est la table &quot;catalogsearch_resu lt&quot;<br>
d&#39;un magento.<br>
<br>
-- Thomas Clavier <a href="http://www.azae.net" target="_blank">http:// www.azae.net</a> Jabber/XMPP/Gtalk :<br>
<a href="mailto:" target="_blank"></a > +33 (0)6 20 81 81 30<br>
<br>
</blockquote>
<br></div>
Tu peux donner les droits à une utilisateur uniquement sur une partie des tables d&#39;une base. C&#39;était peut-être le cas ?<br>
Il aurait fallu faire les tests suivants pour répondre :<br>
Quand tu avais le message indiquant qu&#39;il n&#39;y avait pas la table de mandée, existait-elle bien ? Que donnait une insertion avec ton utilisate ur ? Si elle échouait, que donnait l&#39;insertion avec root ?<br>
<br>
Bonne soirée,<span class="HOEnZb"><font color="#888888"><br>
Guillaume<br>
<br>
-- <br>
Lisez la FAQ de la liste avant de poser une question :<br>
<a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/<u></u>FrenchLists</a><br>
<br>
Pour vous DESABONNER, envoyez un message avec comme objet &quot;unsubscribe &quot;<br>
vers <a href="mailto:" target ="_blank">debian-user-french-REQUEST@<u></u>lists.debian.org</a><br>
En cas de soucis, contactez EN ANGLAIS <a href="mailto: ebian.org" target="_blank"></a><br>
Archive: <a href="http://lists.debian.org/" target ="_blank">http://lists.debian.org/<u></u></a><br>
<br>
</font></span></blockquote></div><br>

--0016e6de03a6a75f2004b30e6af2--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CALbQ=kjn2PzQuw9hn5EqYuHO=Hq+
Avatar
Jean-Yves F. Barbier
On Thu, 1 Dec 2011 22:20:07 +0100
Steven D wrote:

L'InnoDb gère le mode transactionnel.
De faites à chaque update, ou insert la table est locké pour pa s que
d'autre requêtes n’interfère.

Pour delockER la table, un unlock <table> suffit.



Ou ptêt bin un COMMIT, histoire de refermer la transaction...

Pour trouver d'où vient ton problème de départ, peux-tu no us donner plus de
précision sur ta requête de départ.



--
If you want to know what god thinks of money, just look at the
people he gave it to.
-- Dorthy Parker

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Thomas Clavier
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig2E6E3248E9C3AB619A9F6FD0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Le 01/12/2011 22:20, Steven D a écrit :
L'InnoDb gère le mode transactionnel.
De faites à chaque update, ou insert la table est locké pour pas qu e
d'autre requêtes n’interfère.

Pour delocké la table, un unlock <table> suffit.

Pour trouver d'où vient ton problème de départ, peux-tu nous donn er
plus de précision sur ta requête de départ.



ça j'ai pas, surtout que si j'avais on pourrais corriger le problème à
la source ;-) un show full processlist quand le batch d'import plante ne
montre rien ... et en fait c'est normale.

Merci pour la piste, ce qui ce passe :
- le process d'import lock la table
- il plante et le lock n'est pas libéré

Je pensais qu'en rebootant mysql la file d'attente des lock serait
ré-initialisé ... mais non. Idem quand on drop la base, la file
d'attente des lock persiste. Il faut "droper" le user pour que les locks
posé par l'utilisateur soient supprimés. L'autre solution beaucoup
beaucoup plus simple c'est unlock de la table ... mais quand mysql nous
dit, la table n'existe pas difficile d'y penser :-)

--
Thomas Clavier http://www.tcweb.org
Jabber/XMPP/MSN/Gtalk :
+33 (0)6 20 81 81 30 +33 (0)950 783 783



--------------enig2E6E3248E9C3AB619A9F6FD0
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk7YlXwACgkQStsfiGuIVENAWQCeLYK11nQxWBR+6I6PsyagWoZE
q5AAn1vg3noIcHpbThTh2jRMweEK8p+2
=CjQQ
-----END PGP SIGNATURE-----

--------------enig2E6E3248E9C3AB619A9F6FD0--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Jean-Michel OLTRA
Bonjour,


Le vendredi 02 décembre 2011, Thomas Clavier a écrit...


ça j'ai pas, surtout que si j'avais on pourrais corriger le problème à
la source ;-) un show full processlist quand le batch d'import plante ne
montre rien ... et en fait c'est normale.

Merci pour la piste, ce qui ce passe :
- le process d'import lock la table
- il plante et le lock n'est pas libéré

Je pensais qu'en rebootant mysql la file d'attente des lock serait
ré-initialisé ... mais non. Idem quand on drop la base, la file
d'attente des lock persiste. Il faut "droper" le user pour que les locks
posé par l'utilisateur soient supprimés. L'autre solution beaucoup
beaucoup plus simple c'est unlock de la table ... mais quand mysql nous
dit, la table n'existe pas difficile d'y penser :-)



Pourrais tu faire un rollback lorsque le batch plante ? Quitte à mettre
des points d'arrêts (savepoints) peut-être si c'est possible, pour ne
pas tout rollback'er ?

--
jm

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Thomas Clavier
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigB7779B9230DF186528C49A3A
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le 02/12/2011 11:03, Jean-Michel OLTRA a écrit :
Pourrais tu faire un rollback lorsque le batch plante ? Quitte à m ettre
des points d'arrêts (savepoints) peut-être si c'est possible, pour ne
pas tout rollback'er ?



L'évolution est en cours ... la bonne nouvelle c'est que ça ne plante
plus :)

--
Thomas Clavier http://www.tcweb.org
Jabber/XMPP/MSN/Gtalk :
+33 (0)6 20 81 81 30 +33 (0)950 783 783



--------------enigB7779B9230DF186528C49A3A
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk7YscIACgkQStsfiGuIVEOwcACgik4tKV1A+lvhj/3yYi8KwWOe
7pcAn2noA73QIWVgC43q9bga/PerWTDz
=SSBt
-----END PGP SIGNATURE-----

--------------enigB7779B9230DF186528C49A3A--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/