[Mutualisation] Erreur à la création de la base.

Bonjour,

Je tente d’utiliser le plugin mutualisation compatible avec la dernière version de SPIP.
Malheureusement je rencontre un problème lors de la création de sites, la base de données n’est pas créée, voici le retour d’erreurs:


Fatal error: 
Uncaught mysqli_sql_exception: Base 'mu_blogiter7ef1' inconnue in /*chemin*/SPIP/ecrire/req/mysql.php:617 

Stack trace: 
#0 /*chemin*/SPIP/ecrire/req/mysql.php(617): mysqli_select_db() 
#1 /*chemin*/SPIP/ecrire/base/abstract_sql.php(599): spip_mysql_selectdb() 
#2 /*chemin*/SPIP/mutualisation/mutualiser_creer.php(196): sql_selectdb() 
#3 /*chemin*/SPIP/mutualisation/mutualiser_creer.php(67): mutu_etape_creer_base() 
#4 /*chemin*/SPIP/mutualisation/mutualiser.php(173): mutualiser_creer() 
#5 /*chemin*/SPIP/config/mes_options.php(126): demarrer_site() 
#6 /*chemin*/SPIP/ecrire/inc_version.php(480): include_once('...') 
#7 /*chemin*/SPIP/spip.php(17): include_once('...') 
#8 /*chemin*/SPIP/index.php(5): include('...') 
#9 {main} thrown in /*chemin*/SPIP/ecrire/req/mysql.php on line 617

J’ai testé la connexion à mysql, via mysqli , ça fonctionne, et si j’installe SPIP sans le plugin ( avec ou sans spip_loader via git) l’installation se fait sans problème.
A part le retour du script mutualisation je n’ai aucune erreur (l’affichage des erreurs est activé).
Je me dis que ça doit être dans le fichiers mes_options.php, mais j’ai beau chercher - modifier - tester le résultat ne change pas: la base n’est pas créée.
L’utilisateur mysql a bien tous les droits.
Je poste également le fichier mes_options.php: http://dpaste.com/C7HCTZ65A

Je tiens à répéter que sinon SPIP s’installe sans aucun problème, mais j’ai vraiment besoin de la mutualisation.

Petites précisions, j’utilise le serveur web nginx et mariadb.

Merci pour votre attention. :slight_smile:

Moi, j’ai ceci qui diffère de toi :

define ('_INSTALL_SERVER_DB', 'mysql');
define ('_INSTALL_HOST_DB', 'localhost');
define ('_INSTALL_HOST_DB_LOCALNAME', 'localhost');
define ('_INSTALL_USER_DB_ROOT', 'root');
define ('_INSTALL_PASS_DB_ROOT', 'root');
define ('_INSTALL_NAME_DB', 'mutu_'.prefixe_mutualisation($site));
define ('_INSTALL_USER_DB', prefixe_mutualisation($site));
define ('_INSTALL_TABLE_PREFIX', 'spip');

Il faut les _INSTALL_USER_DB_ROOT et _INSTALL_PASS_DB_ROOT pour que ça puisse créer les bases et les users associés.

Bonjour RealET et merci :slight_smile:

Quelle version as-tu du plugin stp ? Perso j’utilise les dernière versions de SPIP (via le loader) et du plugin.
J’ai tenté en rajoutant les define mais aucun changement.

En fait je veux juste utiliser un utilisateur qui a les pleins pouvoirs pour toutes les bases, pas un utilisateur par bases.

Du coup j’ai pas l’impression que ça vienne de là.

Merci :slight_smile:

Je n’ai jamais testé avec un seul utilisateur pour toutes les bases (pas de cas d’usage ; je trouve au contraire hypersécurisant de séparer les bases selon les utilisateurs)

Et j’utilise la version master git

Voilà, j’ai résolu le problème en utilisant sqlite3, je me suis orienté dans cette direction quand tu m’as « parlé » d’un utilisateur par site. :slight_smile:

Merci encore !
P.S: Il est rassurant de voir que ça fonctionne, mais sqlite n’était pas mon premier choix, là c’est par nécessité.
Je vais plancher quand même pour utiliser mysqli, j’ai plus l’habitude, et comme ça peut être une mauvaise configuration de mon serveur ça vaut le coup de s’y pencher.
Si je trouve je viendrais bien évidement poster le résultat de mes avancées.

Bonjour,
Je ne peux plus non plus créer de base (spip 4.0.7 et php 7.4) !
Le problème vient de ce commit: https://git.spip.net/spip-contrib-extensions/mutualisation/commit/1886876b67d76810942e4021d0d9b15bfa6c56f2

L’ajout du isset() ligne 201 de mutualiser_creer.php . C’est plutôt un !empty() qu’il faudrait sinon c’est toujours vrai même avec $options['url_creer_base'] = '' la valeur par défaut.

1 « J'aime »

Merci Philippe !

Ça devrait aller mieux avec ce que je viens de commiter : https://git.spip.net/spip-contrib-extensions/mutualisation/commit/3f50621b326fe0ff99467bc7e3bfd28ce56cf5ac

2 « J'aime »

Bonjour :slight_smile:

Merci pour vos retours, malheureusement ça ne change rien je suis un peu largué là mais je n’ai vraiment la tranquillité nécessaire de me pencher largement dessus. Ce sera plutôt en semaine, je commence à me dire que si les commit fonctionnent pour vous c’est que mon problème se trouve ailleurs.

Ancien codeur php je passerais des debug sur les différentes étapes du plugin pour cerner mon problème car comme précisé plus haut le SPIP sans mutualisation fonctionne très bien. Mais j’ai besoin de cette mutualisation…

Edition: je suis bien en php8.1.7.
Bonne journée à vous et à bientôt . :slight_smile:

Bonjour :slight_smile:

Bon j’ai trouvé le problème contraignant pour le moment, je vais passer par SPIP sans mutualisation pour le moment.

Je me remettrai dessus quand le besoin s’en refera ressentir, d’içi là de l’eau aura un peu coulé sur les ponts et ça devrait être plus simple.

En tout cas encore merci et bonne continuation !