Alwaysdata - Installation de SPip 4

Bonjour
J’ai installé SPIP4 chez mon hébegeur Alwaysdata
L’installation bloque au niveau de la base de données
J’ai le message d’erreur suivant

L’opération a échoué.

Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.

Pourtant les données fournies par l’hébergeur sont correctes
Quelqu’un a une idée ?
Merci

Comme d’hab pour recevoir de l’aide il faut au moins indiquer le message d’erreur exact, indiquer la version de PHP et regarder si tu as des logs spip (dans /tmp/log) qui indiquent des erreurs, et citer les erreurs les plus récentes.

Bonjour
Version Spip installée : spip-v3.2.8
Version php : 7.4.4

Message d’erreur de SPIP :
Le serveur SQL contient plusieurs bases de données.
Sélectionnez ci-après celle qui vous a été attribuée par votre hébergeur :
• information_schema
• rossi_spip-v3_2_8
L’opération a échoué.
Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.

Logs trouvés dans TMP/LOG :
Fichier mysqlmysql.log :
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L73 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_meta (
nom VARCHAR (255) NOT NULL,
valeur text DEFAULT ‹  ›,
impt ENUM(‹ non ›, ‹ oui ›) DEFAULT ‹ oui › NOT NULL,
maj TIMESTAMP,
PRIMARY KEY (nom)) ENGINE=MyISAM
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L81 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_meta (
nom VARCHAR (255) NOT NULL,
valeur text DEFAULT ‹  ›,
impt ENUM(‹ non ›, ‹ oui ›) DEFAULT ‹ oui › NOT NULL,
maj TIMESTAMP,
PRIMARY KEY (nom)) ENGINE=MyISAM
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L73 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_urls (
id_parent bigint(21) DEFAULT ‹ 0 › NOT NULL,
url VARCHAR(255) NOT NULL,
type varchar(25) DEFAULT ‹ article › NOT NULL,
id_objet bigint(21) NOT NULL,
date DATETIME DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL,
segments SMALLINT(3) DEFAULT ‹ 1 › NOT NULL,
perma TINYINT(1) DEFAULT ‹ 0 › NOT NULL,
langue VARCHAR(10) DEFAULT ‹  › NOT NULL,
PRIMARY KEY (id_parent, url),
KEY type (type, id_objet),
KEY langue (langue),
KEY url (url)) ENGINE=MyISAM
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L81 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_urls (
id_parent bigint(21) DEFAULT ‹ 0 › NOT NULL,
url VARCHAR(255) NOT NULL,
type varchar(25) DEFAULT ‹ article › NOT NULL,
id_objet bigint(21) NOT NULL,
date DATETIME DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL,
segments SMALLINT(3) DEFAULT ‹ 1 › NOT NULL,
perma TINYINT(1) DEFAULT ‹ 0 › NOT NULL,
langue VARCHAR(10) DEFAULT ‹  › NOT NULL,
PRIMARY KEY (id_parent, url),
KEY type (type, id_objet),
KEY langue (langue),
KEY url (url)) ENGINE=MyISAM
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/install/etape_3.php L127 [sql_insertq(),install_bases(),install_etape_3_dist(),exec_install_dist()]
INSERT INTO spip_meta (nom,valeur,impt) VALUES (‹ version_installee ›,‹ 23375 ›,‹ non ›)
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/install/etape_3.php L130 [sql_insertq(),install_bases(),install_etape_3_dist(),exec_install_dist()]
INSERT INTO spip_meta (nom,valeur,impt) VALUES (‹ nouvelle_install ›,‹ 1 ›,‹ non ›)
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/req/mysql.php L1739 [sql_delete(),test_rappel_nom_base_mysql(),install_mode_appel(),install_bases(),install_etape_3_dist(),exec_install_dist()]
DELETE FROM rossi_spip-v3_2_8.spip_meta
WHERE nom=‹ mysql_rappel_nom_base ›

Fichier spip.log :
2022-01-22 17:29:50 87.90.214.177 (pid 3560721) :Pri:!INFO: spip_connect: fichier de connexion ‹  › non trouve
2022-01-22 17:30:54 87.90.214.177 (pid 3560721) :Pri:WARNING: SPIP ne connait pas les Charsets disponibles sur le serveur mysql. Le serveur choisira seul.
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L73 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_meta (
nom VARCHAR (255) NOT NULL,
valeur text DEFAULT ‹  ›,
impt ENUM(‹ non ›, ‹ oui ›) DEFAULT ‹ oui › NOT NULL,
maj TIMESTAMP,
PRIMARY KEY (nom)) ENGINE=MyISAM
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:55 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L81 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_meta (
nom VARCHAR (255) NOT NULL,
valeur text DEFAULT ‹  ›,
impt ENUM(‹ non ›, ‹ oui ›) DEFAULT ‹ oui › NOT NULL,
maj TIMESTAMP,
PRIMARY KEY (nom)) ENGINE=MyISAM
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:cf maj.log
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L73 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_urls (
id_parent bigint(21) DEFAULT ‹ 0 › NOT NULL,
url VARCHAR(255) NOT NULL,
type varchar(25) DEFAULT ‹ article › NOT NULL,
id_objet bigint(21) NOT NULL,
date DATETIME DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL,
segments SMALLINT(3) DEFAULT ‹ 1 › NOT NULL,
perma TINYINT(1) DEFAULT ‹ 0 › NOT NULL,
langue VARCHAR(10) DEFAULT ‹  › NOT NULL,
PRIMARY KEY (id_parent, url),
KEY type (type, id_objet),
KEY langue (langue),
KEY url (url)) ENGINE=MyISAM
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1071
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes
in /home/rossi/www/spip-v3.2.8/ecrire/base/create.php L81 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]
CREATE TABLE IF NOT EXISTS rossi_spip-v3_2_8.spip_urls (
id_parent bigint(21) DEFAULT ‹ 0 › NOT NULL,
url VARCHAR(255) NOT NULL,
type varchar(25) DEFAULT ‹ article › NOT NULL,
id_objet bigint(21) NOT NULL,
date DATETIME DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL,
segments SMALLINT(3) DEFAULT ‹ 1 › NOT NULL,
perma TINYINT(1) DEFAULT ‹ 0 › NOT NULL,
langue VARCHAR(10) DEFAULT ‹  › NOT NULL,
PRIMARY KEY (id_parent, url),
KEY type (type, id_objet),
KEY langue (langue),
KEY url (url)) ENGINE=MyISAM
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:cf maj.log
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/install/etape_3.php L127 [sql_insertq(),install_bases(),install_etape_3_dist(),exec_install_dist()]
INSERT INTO spip_meta (nom,valeur,impt) VALUES (‹ version_installee ›,‹ 23375 ›,‹ non ›)
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/install/etape_3.php L130 [sql_insertq(),install_bases(),install_etape_3_dist(),exec_install_dist()]
INSERT INTO spip_meta (nom,valeur,impt) VALUES (‹ nouvelle_install ›,‹ 1 ›,‹ non ›)
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur 1146 de mysql: Table ‹ rossi_spip-v3_2_8.spip_meta › doesn’t exist
in /home/rossi/www/spip-v3.2.8/ecrire/req/mysql.php L1739 [sql_delete(),test_rappel_nom_base_mysql(),install_mode_appel(),install_bases(),install_etape_3_dist(),exec_install_dist()]
DELETE FROM rossi_spip-v3_2_8.spip_meta
WHERE nom=‹ mysql_rappel_nom_base ›
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:ERREUR: Erreur mysql 1146

Fichier maj.log :
2022-01-22 17:30:56 87.90.214.177 (pid 3560721) :Pri:CRITIQUE: Echec creation table spip_meta
2022-01-22 17:30:57 87.90.214.177 (pid 3560721) :Pri:CRITIQUE: Echec creation table spip_urls

Merci pour votre aide

Re bonjour
En fait pour contourner le problème j’ai crée manuellement la table spip_meta
Ensuite j’ai intégré manuellement un utilisateur dans la table spip_auteur
En raffraichissant la page d’installation qui bloquait, j’ai pu passé à l’étape suivante
Et du coup l’installation a réussi
Si ça peut servir…

Bah aucun problème pour installer des SPIP de toute sorte chez always data…
Par contre la version installée 3.2.8 n’est pas compatible php 7.4.
Il faut la version 3.2.11 (il faut mettre à jour de toute façon → sécu)

1 « J'aime »

Bonjour à tous,

Pour la première fois, j’ai été confronté à une impossibilité d’installer un SPIP que ce soit une 3.2 ou une 4.0 chez Alwaysdata en hébergement mutualisé.

L’installeur se connecte bien au serveur MySQL, me renvoie bien les bases disponibles. Mais lorsque je valide le formulaire de choix de BDD, j’obtiens une erreur m’invitant à choisir une autre base…

L’opération a échoué.
Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.

En essayant d’installer via SPIP-Cli, j’obtiens ce retour :

Connexion à la base de données établie : mysql version 10.6.5-MariaDB
Démarrage de l’installation de la base…
Erreur lors de l’installation :
vielle = rappel= $GLOBALS[‹ mysql_rappel_nom_base ›] = false; /* echec de test_rappel_nom_base_mysql a l’installation. */ defined(’_MYSQL_SET_SQL_MODE’) || define(’_MYSQL_SET_SQL_MODE’,true); →
Veuillez recommencer l’installation.

J’ai essayé de me connecter à un autre serveur MySQL chez le même hébergeur et là je parviens sans problème à installer…

Autre constat : les tables sont en fait créées à l’exception de spip_meta.

Ce qui me semble diverger : la longueur du nom du serveur (mysql-lesateliersdelolibrius.alwaysdata.net) ainsi que celui de la base de données (lesateliersdelolibrius_new).

Pour m’en sortir, j’ai importé la base de mon installation locale puis relancé l’installeur et je peux finaliser l’installation sans souci…

Bonsoir à tous,

J’ai eu un retour du support d’Alwaysdata qui assure que « c’est bien la version 10.6 de MariaDB que SPIP n’aime pas » et que « ce simple patch suffit à résoudre le problème ».

heu oui mais non : ce n’est pas un patch qui résout le problème, il ne fait que l’éviter. On voudrait savoir ce qui ne va pas avec les tables MyIsam et corriger (qu’ensuite on choisise innodb ou myisam par défaut est un autre sujet, mais ça doit continuer de marcher avec myisam)

Ce bug MyISAM+utf8 est connu
https://bugs.mysql.com/bug.php?id=4541

Si on veut que SPIP continue à s’installer sur un serveur en utf8mb4, tout en forçant le type MyISAM, le seul choix est de limiter la taille des index

Dans le passé j’ai déjà créé 2 sites sans problème chez alwaysdata mutu
mais aujourd’hui je suis confronté à ce problème et impossible d’installer spip405 pour cette même raison : Erreur 1071 de mysql: Specified key was too long; max key length is 1000 bytes in ...ecrire/base/create.php L74 [sql_create(),creer_ou_upgrader_table(),alterer_base(),creer_base(),install_bases(),install_etape_3_dist(),exec_install_dist()]

Avec mariadb 10.6. Le patch règle le problème.
Ya 2 tickets sur le sujet :

Bonjour,

Pour information, nous proposons SPIP en installation automatique depuis notre Marketplace :

Installer SPIP sur alwaysdata

Bien à vous,

Bonjour,

Je suis allé lire le script d’installation (via administration | alwaysdata) et je vois que vous avez rajouté :
sed -i "/ENGINE=MyISAM/d" ecrire/req/mysql.php

Donc que vous faites un patch de SPIP pour permettre l’installation en inodb.

Mais, sauf erreur de ma part, ça reposera problème à la mise à jour suivante de SPIP.
à moins que vous ayez aussi une procédure de mise à jour de SPIP aussi simple :wink:

Ce bug n’impacte que la CRÉATION des tables donc un upgrade (à partir d’une version patchée) fonctionnera bien en l’état … mais l’absence de patch dans la version mise à jour empêchera l’installation de nouveaux plugins qui créent des tables.

J’ai créé une page sur le wiki pour aider a propos de la config Alwaysdata : Configuration Alwaysdata
Ça parle de ce problème mais aussi de la modification de la config pour la nouvelle future version SPIP 4.1 qui a besoin d’un PHP avec l’extension sodium.

SPIP ne fonctionne pas sans ce patch, avec MariaDB 10.6, que nous proposons. Nous avons juste récupéré une solution issue de cette discussion.

Les mises à jour ne sont ensuite pas gérées par notre système, donc il est possible que les utilisateurs de SPIP aient à se référer à cette discussion pour gérer d’éventuels problèmes.

Lorsque SPIP gèrera des versions plus récentes de MariaDB, nous mettrons à jour notre script l’installation pour faire disparaître ce patch.

Si vous avez une meilleure solution n’hésitez surtout pas à nous en faire part !

1 « J'aime »