Configuration d'un serveur MySQL

Résolu
heliconius Messages postés 539 Date d'inscription   Statut Membre Dernière intervention   -  
heliconius Messages postés 539 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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

1
heliconius Messages postés 539 Date d'inscription   Statut Membre Dernière intervention   142
 
T'es toujours là quand il faut, toi...
Merci beaucoup !
0