SPIP ecureuil




Thème de ce forum :

spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???



florian
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???
2 décembre 2005 09:31

bonjour. spip 1.8.2.e semble ne pas fonctionner correctement avec le serveur mysql 5.0.16-nt.

symptome : l’installation se déroule bien, mais le login auteur n’est pas créé dans la table spip_auteurs.

par contre, en restant dans le même serveur, et en se connectant à un serveur mysql 4.0.16 (donc, seul le serveur mysql change), tout fonctionne.

quelqu’un a-t-il déjà résolu ce problème avec mysql 5.0.16-nt ? et si oui, comment ?

bien cordialement, florian.

Rechercher dans les forums:
 

2 décembre 2005 22:24
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

J’ai le même problème, vidange de la table Auteurs lors d’une restauration de sauvegarde en local. Le dump.xml.gz sort d’une 1.8.2e (sur free) et entre dans une 1.8.2e (php 4.3.11). Le problème se reproduit dans les mêmes conditions, mais pas d’un free à un autre.

comradE Ogilvy
2 décembre 2005 22:27
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

Et pardon, j’ai oublié de préciser, MySql 4.1.12 standard.

Olivier Thery
3 décembre 2005 10:36
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

Le problème vient sans doute du décalage entre la construction des tables de la base de données à partir du script d’installation, et les requêtes de création qui suivent (notamment celle d’un auteur dans la table spip_auteurs).

Par exemple, dans le fichier ./ecrire/inc_serialbase.php3, on trouve le script de création de la table spip_auteurs :*

$spip_auteurs = array(
                "id_auteur"        => "bigint(21) NOT NULL",
                "nom"        => "text NOT NULL",
                "bio"        => "text NOT NULL",
                "email"        => "tinytext NOT NULL",
                "nom_site"        => "tinytext NOT NULL",
                "url_site"        => "text NOT NULL",
                "login"        => "VARCHAR(255) BINARY NOT NULL",
                "pass"        => "tinytext NOT NULL",
                "low_sec"        => "tinytext NOT NULL",
                "statut"        => "VARCHAR(255) NOT NULL",
                "maj"        => "TIMESTAMP",
                "pgp"        => "BLOB NOT NULL",
                "htpass"        => "tinyblob NOT NULL",
                "en_ligne"        => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
                "imessage"        => "VARCHAR(3) NOT NULL",
                "messagerie"        => "VARCHAR(3) NOT NULL",
                "alea_actuel"        => "tinytext NOT NULL",
                "alea_futur"        => "tinytext NOT NULL",
                "prefs"        => "tinytext NOT NULL",
                "cookie_oubli"        => "tinytext NOT NULL",
                "source"        => "VARCHAR(10) DEFAULT 'spip' NOT NULL",
                "lang"        => "VARCHAR(10) DEFAULT '' NOT NULL",
                "idx"                => "ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL",
                "url_propre" => "VARCHAR(255) NOT NULL",
                "extra"        => "longblob NULL");

presque tous les champs sont déclarés "NOT NULL".

En revanche, dans le fichier ./ecrire/install.php3, on trouve (à l’étape 6 de l’installation) la requête de création du premier auteur :

$query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES('$nom','$email','$login','$mdpass','$htpass',FLOOR(32000*RAND()),'0minirezo')";

Or cette requête ne renseigne pas tous les champs, et donc le moteur MySql provoque une erreur pour tous les champs "NOT NULL" qui ne reçoivent pas de valeur.

2 solutions me paraissent possibles :

1) compléter les requêtes en mettant des valeurs "EMPTY" (c’est-à-dire des chaînes vides ’’) pour les champs TEXT NOT NULL

2) supprimer les "NOT NULL" dans le script d’installation.

Dans les 2 cas, je pense qu’il faut regarder dans le code tous les appels à la base de données (lecture, création, mise à jour) pour voir si les valeurs sont obligatoires ou non et si elles peuvent être une chaîne vide. Personnellement, je n’ai pas encore eu le temps de faire ce petit travail.

Ce problème n’est pas propre à SPIP. Je l’ai rencontré également avec programme en PHP, comme le WIKI "Wikini", en passant de MySql 4.XX à MySql 5.XX.

Comment cela peut-il fonctionner avec MySql 4.XX ?

Est-ce dû à MySql ou à la librairie utilisée avec PHP (mysql ou mysqli) ?

xavier
31 janvier 2006 11:30
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

Autre possibilité sans doute plus simple mais encore faut il avoir acces a la config Mysql.

Voici la marche a suivre :

Dans My.ini

Ligne "SQLMode" enlever tout simplement "StrictAble"

Et voila Spip 1.8.2 fonctionne parfaitement avec Mysql 5

Bien à vous

ArChAoNaLeX
27 février 2006 10:42
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

Salut J’avais le même problèmes et j’ai résolue ce problème en supprimant tous les NOT NULL de la page inc_serialbase.php et là je supprime à nouveau le fichier inc_connect.php et je lance mon navigateur (http://monsite/spip/ecrire) que vois je à la fin de linstallation, j’entre mon login et mon mot de passe et sa fonctionne !!! :D

Merci pour l’astuce sa me retire une belle épine du pied surtout que je suis en stage ^^

Enzo
11 septembre 2006 13:06
spip 1.8.2.e ne fonctionne pas avec mysql 5.0.16 ???

Bonjour,

Ce thread est intéressant, mais manque de chance, sous MySQL 5.0.22 je ne trouve pas cette option.

Je ne la trouve en fait pas dans le manuel MySQL

Quel est la syntaxe exacte ?

En lien ci-dessous, vous verrez la documentation sur SQLMode (mais pas de StrictAble)

Par avance, merci Enzo

RSS






squelette