Configuration d'un serveur MySQL

Résolu/Fermé
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - Modifié le 1 juin 2022 à 16:47
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 1 juin 2022 à 18:06
Bonjour,

Toutes les pages web de mon site commencent par :
<?php require("init.php"); ?>


Le fichier init.php contient :
<?php
// Fichier init.php
// version ... du ....
require("dbconnect.php"); // Voir code ci-dessous

// Suivent les fonctions très fréquemment utilisées dans le reste du site :
// affichage menu, conversion de dates (mysql-<--> fr), etc.
?>


<?php
// ---------- For connection to the database
// Fichier dbconnect.php
// version 0.1 du 17/04/2020 19:00

// define("DBTYPE",        "pgsql");
// define("PORT",      "port=5432");
define("DBTYPE",        "mysql");
define("PORT",      "port=3306");
define("SERVER", "host=1.2.3.4");
define("BASE",    "dbname=test");
define("USER",           "test");
define("PASS",     "motdepasse");

define("DSN", DBTYPE.":".PORT.";".SERVER.";".BASE);

try {
   // Connection to the server
   $cnx = new PDO(
            DSN, USER, PASS,
            array (
               PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
               PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
               PDO::ATTR_TIMEOUT => 2
            )
          );
}
catch(PDOException $e) {
    switch($e->getCode()) {
        case 0    : echo "Pilote ".DBTYPE." non installé"; break;
        case 1044 : echo "Base non joignable";             break;
        case 1045 : echo "Utilisateur non identifié";      break;
        case 2002 : echo "Serveur local non joignable";    break;
        case 2003 : echo "Serveur non joignable";          break;
        default   : echo "Erreur ".$e->getCode();          break;
    }
    echo "\n";
    die();
}
?>


J'ai de l'espace web chez deux hébergeurs.

-- Chez le premier (le plus ancien) la désignation du serveur dans dbconnect.php s'écrit :
define("SERVER", "host=1.2.3.4"); // Son uméro IP


-- Dans le second (que je viens de prendre) si je le définis comme ci-dessus : Erreur 2002. Pour que le problème soit résolu, il faut écrire :
define("SERVER", "host=localhost");


Ma question :

A quel endroit de la configuration de MySQL (MariaDB) dois-je préciser que le serveur de base de données peut être désigné soit par "localhost" soit par son numéro IP ?
J'envisage, en effet, à partir du dernier hébergement interroger le serveur installé sur le premier et il faudra le désigner par un numéro IP -- ou FQDN -- et non par localhost (sur lequel se trouvent les scripts).

Merci pour vos réponses.


Configuration: Configuration: Windows / Firefox 101.0
A voir également:

1 réponse

jordane45 Messages postés 38221 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juillet 2024 4 682
1 juin 2022 à 17:52
Bonjour,

"localhost" est juste un "alias" de l' ip 127.0.0.1
En général, pour la connexion au serveur, on peut indifféremment utiliser son IP ou son HostName.
Par contre, pour pouvoir accéder depuis un autre serveur (ou depuis une IP différente), il faut faire de la configuration pour permettre la connexion distante (remote access )
voir, par exemple, ici : https://webdock.io/en/docs/how-guides/database-guides/how-enable-remote-access-your-mariadbmysql-database

heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 139
1 juin 2022 à 18:06
T'es toujours là quand il faut, toi...
Merci beaucoup !
0