IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

'Operation timed out' quand j'essaie de me connecter à ma base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2022
    Messages : 2
    Par défaut 'Operation timed out' quand j'essaie de me connecter à ma base de données
    Bonjour tout le monde, c'est mon premier post sur ce forum.

    Je dois accéder à une base de données déjà établie auparavant par mon prédécesseur sur OVH. J'arrive à y accéder depuis l'interface PHPMyAdmin mais pas depuis un fichier PHP.
    J'utilise PDO pour me connecter (raisons de sécurité). Malgré les identifiants qui semblent tous corrects, une simple requête dépasse la limite de temps.

    Voici le code de 'connexion.php' (tout droit pompé de ce guide officiel https://docs.ovh.com/fr/publiccloud/...l/connect-php/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?php
     
    $HOST = 'xxxxxx-001.eu.clouddb.ovh.net';
    $SERVER = 'servername.mysql.db';
    $USERNAME = 'servername';
    $DBPWRD = '******';
    $DBNAME = $USERNAME;
    $PORT = 35884;
    $OPTIONS = [
        PDO::MYSQL_ATTR_SSL_CA => './ca.pem',
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true
    ];
     
     
    try {
        $conn = new PDO("mysql:host=$HOST; port=$PORT; dbname=$DBNAME;", $USERNAME, $DBPWRD, $OPTIONS);
        var_dump($conn->query("SHOW STATUS LIKE 'Ssl_cipher';")->fetchAll());
        $conn = null;
    }
    catch(Throwable $e) {
        echo "Captured Throwable for connection : ".$e->getMessage().PHP_EOL;
    }
     
    ?>
    Je ne comprends pas pourquoi ça ne marche pas, peut-être quelque chose à configurer sur OVH ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Ça peut être un firewall qui fait que ce port n'est pas accessible pour l'adresse IP au départ de laquelle vous essayez de faire la connexion.
    Est-ce que ce code PHP est bien exécuté sur un serveur hébergé chez OVH ? Vous ne pouvez pas vous connecter au départ de n'importe ou (ex: PC de dév à la maison) et partir du principe que ça fonctionnera toujours puisqu'il y a des restrictions côté hébergeur.

    Je suppose que l'interface PHPMyAdmin dont vous parlez est un service fourni par OVH sur une adresse spécifique et n'est donc pas installé sur votre serveur ?
    Mais si jamais PHPMyAdmin est bien installé sur votre serveur et fonctionne, alors il faut regarder son fichier de configuration.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 286
    Par défaut
    Essayes servername.mysql.db en $host, ne mets pas de port, et enlèves les options.

    D'autre part, qu'affiche $e->message() ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2022
    Messages : 2
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Essayes servername.mysql.db en $host, ne mets pas de port, et enlèves les options.

    D'autre part, qu'affiche $e->message() ?
    Sans changements, le message d'erreur est
    SQLSTATE[HY000] [2002] Operation timed out
    En modifiant le code selon ta réponse, le message est
    SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for dparadispwadmin.mysql.db failed: nodename nor servname provided, or not known
    En retirant le try-catch, j'obtiens cependant des messages d'erreur plus précis...

    Avec ce code-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
     
    $HOST = 'xxxxx.eu.clouddb.ovh.net';
    $SERVER = 'servername.mysql.db';
    $USERNAME = 'servername';
    $DBPWRD = '*****';
    $DBNAME = $USERNAME;
    $PORT = '35584';
    $OPTIONS = [
        PDO::MYSQL_ATTR_SSL_CA => "./ca.pem", // 'ca.pem' est le certificat fourni par OVH, il se situe dans le même dossier que 'database.php'
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true
    ];
     
    $conn = new PDO("mysql:host=$HOST;port=$PORT;dbname=$DBNAME;", $USERNAME, $DBPWRD, $OPTIONS);
    var_dump($conn->query("SHOW STATUS LIKE 'Ssl_cipher';")->fetchAll());
     
    ?>
    Cette fois-ci, le message d'erreur est le suivant:
    PHP Fatal error: Uncaught PDOException: failed loading cafile stream: `./ca.pem'
    Accompagné d'une nouvelle exception PDO:
    SQLSTATE[HY000] [2002] (trying to connect via (null))
    J'ai l'impression que le problème vient du certificat, pourtant c'est bien le même directement fourni par OVH

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 286
    Par défaut
    Je pense que ce que je t'ai n'ai pas valable pour le clouddb, uniquement avec les bases SQL fournies avec les hébergements
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. MSXML2.serverXMLHTTP : The operation timed out
    Par t-die dans le forum VBScript
    Réponses: 3
    Dernier message: 15/07/2010, 12h34
  2. Erreur TNS-12535, operation timed out
    Par sphax.wd dans le forum Administration
    Réponses: 0
    Dernier message: 09/05/2009, 04h14
  3. WebService ESOAPHTTPException - 'The operation timed out'
    Par bassydiak dans le forum Web & réseau
    Réponses: 0
    Dernier message: 22/08/2007, 11h05
  4. ORA-12535: TNS: operation timed out
    Par Wurlitzer dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 30/05/2006, 14h31
  5. MSXML2.serverXMLHTTP : The operation timed out
    Par malbaladejo dans le forum ASP
    Réponses: 1
    Dernier message: 06/12/2005, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo