Page 1 sur 1
[Résolu] Problème MySQL (#1064)
Publié : 12 sept. 2006, 16:45
par GizMecano
Hello,
Depuis quelques temps, j'aide un ami à monter un site en PHP avec plusieurs tables MySQL, et je me heurte à un problème que je n'ai jamais rencontré auparavant.
Je me suis connecté à sa base (hébergée chez
un prestateur payant), ai supprimé les anciennes tables devenues inutiles puis ai essayé d'importer les miennes. Et là : erreur

!
Quand je tente de les importer toutes en même temps, il me dit que
la base existe déjà... Qu'à cela ne tienne, j'ai donc tenté de les importer une à une, tranquillement. Nouvelle erreur, différente.
Quelques soient les options que je choisisse pour exporter ma table en local, j'obtiens systèmatiquement une erreur en distant, du type #1064.
En clair, ça donne quelque chose comme ça (en prenant l'exemple de l'une de ces tables) :
Code : Tout sélectionner
CREATE TABLE IF NOT EXISTS `actualites` (
`date` date NOT NULL default '0000-00-00',
`lieu` varchar( 40 ) NOT NULL default '',
`action` tinytext NOT NULL ,
UNIQUE KEY `date` ( `date` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8
Ce à quoi il me répond :
MySQL a écrit :#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=utf8' at line 6
Je tiens à préciser que ce n'est pas ma première expérience avec MySQL : mon site personnel entier est basé là dessus par exemple. J'ai même fait le test,
concluant, d'importer une de ces tables sur ma propre base et
tout fonctionne parfaitement.
Je ne comprends absolument pas d'où vient ce genre d'erreur. Si quelqu'un à une petite idée, même un début de piste : je prends...
Ciao,
Publié : 12 sept. 2006, 22:34
par Benoit
Est-ce que tu sais de quelle version de MySQL il s'agit ?
Publié : 13 sept. 2006, 01:15
par lpgc
bonjour,
je sais pas si çà peut aider ?
j'ai essayé sur mon serveur qui est en French (fr-iso-8859-1 ) et çà donne la même erreur
Code : Tout sélectionner
Erreur
requête SQL :
CREATE TABLE IF NOT EXISTS `actualites` (
`date` date NOT NULL default '0000-00-00',
`lieu` varchar( 40 ) NOT NULL default '',
`action` tinytext NOT NULL ,
UNIQUE KEY `date` ( `date` )
)ENGINE = MYISAM DEFAULT CHARSET = utf8
MySQL a répondu:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET = utf8' at line 4

en elevant le ENGINE... çà passe
Code : Tout sélectionner
Votre requête SQL a été exécutée avec succès (traitement: 0.0409 sec.)
requête SQL : [Modifier] [Créer source PHP]
CREATE TABLE IF NOT EXISTS `actualites` (
`date` date NOT NULL default '0000-00-00',
`lieu` varchar( 40 ) NOT NULL default '',
`action` tinytext NOT NULL ,
UNIQUE KEY `date` ( `date` )
)
Cordialement
Christian
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Publié : 13 sept. 2006, 08:55
par GizMecano
Hello,
Merci à tous les deux. Vous m'avez mis sur la piste, car il semble bien s'agir d'un problème de version. Le test proposé par
lpgc n'a pas fonctionné chez moi (tout est en
utf-8, a priori), mais l'erreur n'était plus la même...
Il s'avère en fait que les deux versions de MySQL ne sont pas tout à fait les mêmes (problème que je pensais mineur) : en distant
MySQL 4.0.24_Debian-10sarge1-log et en local
MySQL 4.1.9-max. En forçant l'option
Compatibilité de l'exportation en
MYSQL40 (chose que je ne pensais pas utile vu la proximité des deux versions), l'importation vers la base distante passe correctement :
je ne vois donc que cette solution.
Merci encore.
Ciao,
Publié : 13 sept. 2006, 21:28
par Benoit
Oui en fait les différences entre mySQL 4.0 et mySQL 4.1 sont plutôt énormes (plus qu'entre la 3.23 et la 4.0 il me semble).
Publié : 14 sept. 2006, 15:45
par GizMecano
Hello
Benoit a écrit :Oui en fait les différences entre mySQL 4.0 et mySQL 4.1 sont plutôt énormes.
Ce qui est fou, c'est de penser que c'est un hébergeur payant qui utilise cette ancienne version, alors que dans mon
EasyPHP que je n'ai pas mis à jour depuis pas mal de temps, j'ai une version plus récente
Ciao,
Publié : 14 sept. 2006, 16:47
par lpgc
bonjour,
simple question : chez mon hébergeur qui est aussi payant...
je sais qu'il est possible de choisir comme paramètre la version PHP que l'on veut utiliser 4 ou 5
comme j'ai à peine quelques mois en programm Web, je me demandais
si c'était aussi possible de choisir entre les versions MySQL
Merci
Christian
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Publié : 14 sept. 2006, 17:15
par GizMecano
Hello,
lpgc a écrit :si c'était aussi possible de choisir entre les versions MySQL

Si c'est le cas, je n'ai pas trouvé où ? Bon, d'un autre côté, peut-être que ça peut se trouver dans les spécifications de l'ouverture de compte... Comme il n'est pas à moi
Ciao,
Publié : 14 sept. 2006, 18:57
par Benoit
Généralement s'il te propose plusieurs versions ce sera sur un serveur différent. Par exemple mysql.serveurpayant.com pour l'un et mysql4.serveurpayant.com pour l'autre. Il faut voir dans la doc qui t'est fournie, ou poser la question au support.
Publié : 14 sept. 2006, 21:27
par calimo
GizMecano a écrit :Ce qui est fou, c'est de penser que c'est un hébergeur payant qui utilise cette ancienne version, alors que dans mon
EasyPHP que je n'ai pas mis à jour depuis pas mal de temps, j'ai une version plus récente
Ben non, c'est normal, un hébergeur payant ne peut pas se permettre de changer "comme ça" les versions des logiciels, justement parce que ça risque de casser des choses.
Si c'est acceptable pour des hébergements "gratuits", ça ne l'est pas pour les clients qui payent
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.5) Gecko/20060731 Firemarsupilami/dapper-security Firefox/1.5.0.5
Publié : 14 sept. 2006, 21:50
par GizMecano
Hello,
calimo, et son célèbre esprit de contradiction que j'adore, a écrit a écrit :Ben non, c'est normal, un hébergeur payant ne peut pas se permettre de changer "comme ça" les versions des logiciels (...).
Je pense que le plus important dans ta remarque, qui n'est pas sans fondement, je te l'accorde, se trouve entre les deux guillemets : non, il ne peut pas se permettre de changer les versions
"comme ça".
Si je me doute que passer à une version supérieure peut poser quelques problèmes en terme de conversion de tables, ce n'est peut-être pas une raison pour proposer un service
payant qui peut s'avérer dépassé (
certes pas à court terme, mais les choses évoluent vites dans ce domaine), surtout si, comme le pense Benoît, les deux versions ont d'importantes différences. Il peut peut-être au moins y penser ou communiquer avec
ses clients sur le sujet...
Bon, admettons que dans le cas présent, les différences sont minimes et on finit par relativiser, je te l'accorde. Mais si je n'avais pas peur des trolls velus, je dirais qu'avec ce genre de raisonnement (poussé à l'extrême), on verrait encore souvent un peu partout sur le réseau de vilains GIF de 88 x 31 pixels en 256 couleurs estampillés
Optimisé pour Netscape 2.0... Voire pire
Ciao,
Publié : 15 sept. 2006, 08:49
par calimo
GizMecano a écrit :Bon, admettons que dans le cas présent, les différences sont minimes et on finit par relativiser, je te l'accorde.
Parce que tu as eu de la chance. Mais il aurait très bien pu (je pense) y avoir des sites complètement cassés par le passage de MySQL 4.0 à 4.1.
Si toi tu as réussi à convertir de 4.1 à 4.0, certains sites plus ou moins "abandonnés" auraient pu ne pas vouloir payer un spécialiste pour passer de 4.0 à 4.1.
C'est le même genre de choses qui font que tu va retrouver par-ci par-là de vieux Windows NT, parce qu'il n'y a plus personne pour adapter un logiciel spécifique, etc.
GizMecano a écrit :Mais si je n'avais pas peur des trolls velus, je dirais qu'avec ce genre de raisonnement (poussé à l'extrême), on verrait encore souvent un peu partout sur le réseau de vilains GIF de 88 x 31 pixels en 256 couleurs estampillés
Optimisé pour Netscape 2.0... Voire pire

Plongeons dans le troll, il y a bien des sites "optimisés pour IE6", ce qui montre que ça fait des années que la structure n'a pas été revue.
Maintenant, ils auraient effectivement pu mettre un serveur mysql41.hebergeur.net comme le disais Benoit. Le risque n'aurait été que très minime
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Publié : 16 sept. 2006, 18:00
par GizMecano
Hello,
calimo a écrit :Mais il aurait très bien pu (je pense) y avoir des sites complètement cassés par le passage de MySQL 4.0 à 4.1.
Je veux bien te croire (en tout cas croire ce que
tu penses), mais l'inverse n'aurait-il pas été possible ? Bon, j'imagine que si on propose une conversion vers la version plus ancienne, ça devrait être impossible, mais je m'interroge tout de même sur un hébergeur qui proposerait un MySQL ne supportant pas correctement l'UTF-8 par exemple...
calimo a écrit :C'est le même genre de choses qui font que tu va retrouver par-ci par-là de vieux Windows NT, parce qu'il n'y a plus personne pour adapter un logiciel spécifique, etc.
Oui, mais si tout fonctionnait ainsi, on verrait encore des voitures démarrant à la manivelle dans nos rues
Ce que je veux bien concevoir pour du
gratuit ou pour un utilisateur
personnel, j'ai dû mal à le comprendre pour des
professionnels d'un domaine particulier. Tout cela corrobore le dicton selon lesquels
les cordonniers sont les plus mal chaussés, on dirait...
calimo a écrit :Maintenant, ils auraient effectivement pu mettre un serveur mysql41.hebergeur.net comme le disais Benoit. Le risque n'aurait été que très minime

Oui, effectivement. Mais ils ne l'ont pas fait. D'un autre côté, je n'avais qu'à me poser la question des versions de mon côté, mais je n'y avais même pas penser (en tout cas, pas dans ce sens).
Ciao,