Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonsoir,
Après plusieurs heures de recherche, je ne parviens pas à installer FluxBB sur mon hébergeur Free. À l'installation, quand je soumets le formulaire (identifiants BDD, identifiants admins [..]), FluxBB me résulte l'erreur suivante :
Error: Unable to connect to MySQL server. MySQL reported: .En absence de retour de MySQL, je n'ai donc pas eu de pistes particulières.
Je me suis connecté au phpMyAdmin avec succès et j'utilise la version 1.5.0.
Avez-vous une solution, une piste ou une idée pour m'aider à résoudre mon problème ? 
Merci d'avance et bonne soirée 
M.
Hors ligne
Bonjour,
Connexion base de données depuis un site perso Free.fr
Les paramètres pour se connecter au serveur MySql afférent à un site http hébergé chez free.fr sont :
- hôte : sql.free.fr
- base : login_sql
- user : login
- password : mot_de_passe_sql
(Qui peut être différent des mots de passe emaill et FTP - Voir nota)
Le login est le nom du site sans free.fr, par exemple si le site est "http://tartempion.free.fr/", le login est "tartempion". Si le login ne comporte pas de point (.) login_sql et login sont identiques.
Dans le cas où le login comporte un point (.), par exemple "jean.tartempion", ledit point DOIT être remplacé par un tiret bas (_) dans le login_sql, soit "jean_tartempion".
Ceci pourrait se traduire, dans un fichier de configuration souvent nommé config.php par, entre autres, les lignes suivantes :
$db_host = 'sql.free.fr';
$db_name = 'login_sql';
$db_username = 'login';
$db_password = 'mot_de_passe_sql';Chez free.fr (Et chez beaucoup dautres hébergeurs) on ne peut se connecter à la base de données ($db_name='login_sql') qu'à partir du site de même login ce qui fait que seul importe la validité du mot_de_passe_sql ; les noms $db_host, $db_name et $db_username n'ont aucune importance puisque le serveur MySql « sait » de quel login provient la demande de connexion. (C'est plutôt PHP qui le « sait », et qui force les valeurs).
C'est pourquoi cette permissivité à vu fleurir tout et n'importe quoi dans les réponses aux paramètres de configuration d'accès à la base de données.
Les « n'importe quoi » pour le nom de la base de données ($db_name) et d'hôte ($db_host) d'un fichier de configuration pour free.fr entrainera INÉVITABLEMENT des erreurs avec des scripts PHP qui iront vérifier l'existence ou l'état de tables.
En effet, la requête : query('SHOW TABLE STATUS FROM `'.$db_name.'`') retournera une erreur si le nom de la base ($db_name) n'est pas "login_sql" puisque celle-ci ne sera pas trouvée.
L'informatique en général et PHP et MySql en particulier doivent être utilisés de manière rigoureuse, pragmatique et cartésienne et non pas de façon empirique, même si les valeurs ne servent théoriquement à rien.
Différences entre connexion MySQL locale et free.fr
Dans la plupart des cas, pour se connecter à une base de données sur un serveur local on utilise comme hôte (host) "localhost" et comme utilisateur (user) "root" et sans mot de passe - bien que ce ne soit pas une bonne solution puisque "root" possède tous les privilèges - et on a, par exemple, un fichier de configuration (config.php) qui contient :
$db_host = 'localhost';
$db_name = 'base_locale';
$db_username = 'root';
$db_password = '';Pour se connecter à la base afférente à un page perso free.fr, il faudrait que ce même fichier, transféré par FTP, contienne :
$db_host = 'sql.free.fr';
$db_name = 'login_sql';
$db_username = 'login_sql';
$db_password = 'mot_de_passe_sql';Comme défini au début.
Une solution est de modifier le fichier config.php avant ou après transfert sur le site free.fr. Ceci est une contrainte qu'il ne faut pas oublier, alors, en partisan du moindre effort, on peut automatiser cette modification qui donnera les bonnes valeur en fonction du « site » local ou free.fr.
En local, le site a un nom, supposons "site_local" qui DOIT être différent du nom du site réel "mon_site.free.fr". Une variable prédéfinie PHP permet de retrouver ce nom, c'est : $_SERVER['SERVER_NAME']. On va donc se servir du contenu de cette variable pour modifier automatiquement le fichier de configuration de connexion à la base de données :
switch ($_SERVER['SERVER_NAME']) {
case "mon_site.free.fr":
$db_host = 'sql.free.fr';
$db_name = 'mon_site';
$db_username = 'mon_site';
$db_password = 'mot_de_passe_SQL_free';
break;
case "site_local":
$db_host = 'localhost';
$db_name = 'base_locale';
$db_username = 'user_local';
$db_password = 'mot_de_passe_local_éventuel';
break;
default:
$db_host = NULL;
$db_name = NULL;
$db_username = NULL;
$db_password = NULL;
}De cette manière, il n'y a plus besoin de penser à modifier les fichiers de configuration lors des transferts FTP après mises à jour du site.
Nota : Chez Free, pour le moment, les mots de passe courriel et FTP sont limités à 16 caractères maximum et le mot de passe SQL à 10 caractères maximum.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne