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 :

Connexion mysql en php sur serveur externe


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Connexion mysql en php sur serveur externe
    Bonjour,

    Je viens de parcourir le forum et je vois que le sujet n'est pas nouveau, je n'ai néanmoins pas trouvé de réponse à mon problème.
    Pour consultation en interne de base de données externe, j'aimerais faire une connexion entre un serveur interne et une base de données sur un serveur externe. Ce serveur étant partagé avec quelqu'un d'autre, et cette personne ne voulant pas utiliser la solution de "commenter la ligne bind-adress du fichier my.cnf" je me suis tourné vers la fonction ssh2_connect.

    Le problème, c'est qu'il semblerait que je ne puisse dans ce cas qu'utiliser des commandes mysql en mode terminal et pour l'instant, mes essais ne sont pas concluants.

    Si possible, je cherche (de préférence) une solution qui me permette d'utiliser la connexion en PDO que j'utilise habituellement. Bref, je ne cherche pas forcément une solution toute faite mais plutôt des pistes. J'ai vu qu'il y avait la possibilité d'ouvrir certain port pour la connexion mysql et je ne sais pas trop comment faire mais en attendant une réponse, je vais chercher dans ce sens. Reste à savoir si dans ce cas, mon utilisateur est en localhost ou en externe…

    Bref, merci d'avance pour votre aide.
    D.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    SSH est une bonne piste?
    Qu'ont donnés tes essais exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    et merci de ton intérêt.

    La fonction ssh que j'utilise est
    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
    26
    function ssh($host, $login, $mdp, $command)
    {
    	echo "<h2>FONCTION SSH</h2>\n";
        if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
        if(!($con = ssh2_connect($host, 22))){
            echo "<h3>échec connexion</h3>\n";
        } else {
            if(!ssh2_auth_password($con, $login, $mdp)) {
                echo "<h3>échec authentification</h3>\n";
            } else {
                // execute a command
                if (!($stream = ssh2_exec($con, $command ))) {
                    echo "<h3>échec de l'exécution de la commande</h3>\n";
                } else {
                    // collect returning data from command
                    stream_set_blocking($stream, true);
                    $data = "";
                    while ($buf = fread($stream,4096)) {
                        $data .= $buf;
                    }
                    fclose($stream);
                    return $data;
                }
            }
        }
    }
    J'ai une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $command ='ls -a /home/denis';
    Je l'appelle ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $ret = ssh('IP', 'login', 'mot_de_passe', $command);
    Et j'obtiens le bon affiche des données dans ma page comme si j'étais en mode console

    Si ma commande est du type mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $command='mysql -u loginMysql -pPassMysql use Base_utilisee SELECT nom_de_table.nom_de_colonne...
    Il ne se passe rien.

    Merci d'avance pour ton avis.

    J'ai aussi pensé à regarder du côté de paramétrer le firewall pour permettre la connexion externe… bonne idée ???
    Encore merci
    Denis

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Plutôt avec un tunnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sshcnx = ssh2_connect($host, 22);
    ssh2_auth_password($sshcnx , $login, $mdp);
    $tunnel = ssh2_tunnel($sshcnx, $adresse_ip, 3307);
    $pdocnx = new pdo('mysql:host=127.0.0.1 ....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Merci,
    l'élégance de tes ligne m'y a fait croire. Hélas toujours ce
    Erreur : SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

    J'ai testé la connexion mysql directement sur le terminal pour être sur des login et mot de passe, et j'ai essayé de mettre localhost à la place de 127.0.0.1

    Si tu as une idée sur ce que je n'ai pas vérifié… je suis preneur.
    Encore merci pour ton aide, ça plaisir de pas se sentir tout seul.
    D.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bon,
    j'ai essayé toute sorte de combinaison entre un utilisateur créer pour le test et ses droit dans la base de donnée (%, localhost, 127.0.0.1) et de l'autre côté même chose dans la déclaration de la requête mysql en visant l'ip du serveur,localhost ou 127….
    J'ai attribué tous les droit à mon utilisateur et je l'ai testé dans le terminal… mais rien n'y fais.

    Comme la semaine a été longue et que j'en ai la possibilité… je vous abandonne.
    N'hésitez pas à me laisser des idée, je revient lundi matin de bonne heure.

    Merci à Sabotage pour son aide et à ceux qui voudront bien donner des avis (ou des conseils…)
    Bon week-end à toys.
    D.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous
    juste une question. Doit-on et si oui comment, fermer le tunnel ssh.

    Si je trouve une solution à mon pb mysql, je viendrais la donner.
    Merci à tous.
    D.

Discussions similaires

  1. Connexion à une BDD sur serveur externe
    Par Berlo56 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 17/04/2014, 09h23
  2. Exécuter une requête MySQL en php sur serveur OVH
    Par phebus1204 dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/04/2009, 16h41
  3. [Wamp] include php sur serveur perso avec WAMP server
    Par Quality_Design dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 16/02/2006, 00h17
  4. [Mail] Serveur de mail en PHP sur serveur dédié
    Par dralik dans le forum Langage
    Réponses: 15
    Dernier message: 16/01/2006, 15h11
  5. Installer apache, mysql et php sur une red hat 9 !
    Par Ruddy16 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 07/11/2005, 21h41

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