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 :

Hôte MySQL distant [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    graphiste
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : graphiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Hôte MySQL distant
    Bonjour,
    je suis débutant en programmation.
    voilà je voudrais créer une fonction, dans un php à part, pour me connecter à un hôte mysql distant. J'ai l'adresse du serveur mysql, mais je ne sais pas comment me connecter avec le code en php.

    Je voudrais une fonction du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	function connectmabase(){
    		$base=mysql_connect('localhost','root','');
    		mysql_select_db('base01',$base);
    	}
    ?>
    Comme je le disais je suis novice, donc si ma question n'est pas assez précise, posez moi des questions svp

    Merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu mets l'adresse IP à la place de localhost dans ton code.

    Et j'ose espérer que ce serveur distant n'autorise pas root à se connecter sans mot de passe depuis n'importe où !

    Crée au préalable un utilisateur MySQL pour ton application, avec un mot de passe, et qui peut se connecter uniquement depuis le serveur de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGE ON nom_bdd.* TO 'nom_user'@'adresse_ip' IDENTIFIED BY 'un_mot_de_passe'
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Candidat au Club
    Homme Profil pro
    graphiste
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : graphiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Tu mets l'adresse IP à la place de localhost dans ton code.

    Et j'ose espérer que ce serveur distant n'autorise pas root à se connecter sans mot de passe depuis n'importe où !

    Crée au préalable un utilisateur MySQL pour ton application, avec un mot de passe, et qui peut se connecter uniquement depuis le serveur de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGE ON nom_bdd.* TO 'nom_user'@'adresse_ip' IDENTIFIED BY 'un_mot_de_passe'
    Bonjour et merci pour la réponse.

    Il est évident que je n'ai pas mis root mais mon identifiant et j'ai ajouté mon mot de passe (ce code était uniquement pour la forme qu'il me faut), désolé c'est ma faute je ne l'ai pas précisé, en fait j'ai fait d'autres tests en attendant une réponse.

    J'ai donc essayé avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function connectmabase(){
    $base=mysql_connect('ip_serveur','nom_utilisateur','password');
    mysql_select_db('ma_base',$base);
     
    if (!$serveur){
    die('Non connecté : ' . mysql_error());
    }
    }
    ?>
    Le problème avec ce code c'est que j'ai un problème, lors de l'envoi du formulaire j'ai un message d'erreur :
    Non connecté : Access denied for user 'nom_utilisateur'@'ip_serveur' to database 'ma_base'

    Alors ce que tu proposes doit être plus efficace, mais il faut absolument que je l'écrive sous forme de fonction pour pouvoir la rappeler dans toutes mes pages en php.
    Je viens donc d'essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	function connectmabase(){
    		GRANT ALL PRIVILEGE ON ma_base.* TO 'nom_utilisateur'@'ip_serveur' IDENTIFIED BY 'password';
     
    		if (!$serveur){
    			die('Non connecté : ' . mysql_error());
    		}
    	}
    ?>
    Mais il y a une erreur de syntaxe. Ca doit te paraitre évident, mais là perso je suis perdu.
    J'ai appris une méthode et en sortant des clous, j'y comprends plus rien.

    Est-ce que tu peux donc me dire comment résoudre ce problème stp ?

    Merci

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    La commande que j'ai donnée GRANT ... permet de créer un utilisateur qui à le droit de se connecter à partir d'une certaine IP et lui donne les droits complets sur une base de données.
    C'est une requête SQL et ne s'exécute qu'une seule fois quand on a besoin de créer l'utilisateur employé par l'application pour se connecter à la BDD.

    Access denied for user 'nom_utilisateur'@'ip_serveur' to database 'ma_base'
    Le message d'erreur est clair !
    Il est évident qu'il fallait remplacer dans la requête GRANT que j'ai donnée les différents paramètres par les vrais nom, IP, BDD, et mot de passe !

    Là le message semble vouloir dire que :
    - soit l'utilisateur n'est pas créé ;
    - soit ce n'est pas le bon mot de passe ;
    - soit il ne se connecte pas de l'IP autorisée ;
    - soit il n'a pas les droits nécessaires pour accéder à la BDD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Candidat au Club
    Homme Profil pro
    graphiste
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : graphiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    La commande que j'ai donnée GRANT ... permet de créer un utilisateur qui à le droit de se connecter à partir d'une certaine IP et lui donne les droits complets sur une base de données.
    C'est une requête SQL et ne s'exécute qu'une seule fois quand on a besoin de créer l'utilisateur employé par l'application pour se connecter à la BDD.


    Le message d'erreur est clair !
    Il est évident qu'il fallait remplacer dans la requête GRANT que j'ai donnée les différents paramètres par les vrais nom, IP, BDD, et mot de passe !

    Là le message semble vouloir dire que :
    - soit l'utilisateur n'est pas créé ;
    - soit ce n'est pas le bon mot de passe ;
    - soit il ne se connecte pas de l'IP autorisée ;
    - soit il n'a pas les droits nécessaires pour accéder à la BDD.
    Je te rassure, je suis novice mais pas idiot.
    Bien sûr que j'ai remplacé les diverses infos (nom, ip, bdd et password) par les vraies et bien sûr que je ne les écris pas ici parce que je n'ai pas envi que tout le monde se connecte avec mes identifiants (même si moi je n'y arrive pas )

    Je reprends du début parce que visiblement je ne suis pas assez précis dans mes explications.
    Je ne connaissais pas le code que tu m'as donné GRANT ... et apparemment je n'en ai pas besoin par rapport à tes explications, car j'ai déjà créé une base de données et un identifiant (mysql) via cPanel et je les ai associés, j'ai bien vérifié une bonne dizaine de fois mon identifiant, l'ip du serveur, le nom de la bdd et le password.
    Je suis donc sûr de moi de ce côté là, jusqu'à maintenant je pensais qu'il y avait donc une erreur dans mon code.

    Ceci étant dit, je voudrais juste savoir selon toi mon code (ci-dessous) est-il correct ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function connectmabase(){
    $base=mysql_connect('ip_serveur','nom_utilisateur','password');
    mysql_select_db('ma_base',$base);
     
    if (!$serveur){
    die('Non connecté : ' . mysql_error());
    }
    }
    ?>
    Si c'est le cas, je me demande si l'erreur ne vient pas du serveur lui-même, surtout que depuis plusieurs heures maintenant je n'arrive plus à me connecter ni au serveur via internet ni à mon site.

    Merci

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    A priori, oui, ton code semble correct.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    si tu utilises cpanel c'est que tu as un dédié et que tu crées ou gères les informations (utilisateur ftp pour un site web et leur association au nom de domaine...

    déjà arrives tu à te connecter avec phpmyadmin en local?

    ou avec ssh et à ouvrir une console mysql?

    si tu n'arrive plus à accéder à la bd ou à ton interface d'administration, tu dois pouvoir rebooter ton serveur au pire.
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  8. #8
    Candidat au Club
    Homme Profil pro
    graphiste
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : graphiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    A priori, oui, ton code semble correct.
    Merci pour ta réponse.
    Merci également à éric de m'avoir répondu.

    Le service technique de mon hébergeur m'a enfin répondu. Donc tout était bon du côté de mon code, le seul souci était que le mot de passe que j'ai créé via cpanel ne sert apparemment à rien puisque le bon mot de passe est celui de la connexion chez mon hébergeur. Je ne vois pas bien le rapport mais bon...

    Donc pour que ce sujet ne soit pas complètement inutile, si quelqu'un a le même problème que moi en étant hébergé chez e-clicking, sachez que le mot de passe de connexion aux bdd n'est pas celui que vous créez lors de la création de la base mais celui dont vous vous servez pour vous connecter chez votre hébergeur.

    Sujet résolu.

  9. #9
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    ton site c'est différents services (ftp, mysql, http, dns...)
    cpanel sert à les configurer dans le but d'administrer les utilisateurs, le firewall (sécurité) et les quotas que tu vas attribuer à chaque site web que tu voudras héberger sur ton dédié...
    ça ne sert donc pas à administrer mysql en particulier mais tout un ensemble de chose, je te conseille de regarder avec google à quoi sert cpanel, histoire de pas faire d'erreur qui te fasse

    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2006, 11h38
  2. url de connexion JDBC pour BD MySQL distante
    Par dédéf dans le forum JDBC
    Réponses: 5
    Dernier message: 14/01/2006, 14h43
  3. [Windows] Pouvoir se connecter a une base mysql distante
    Par TEALC dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 08/12/2005, 17h12
  4. communication entre poste client windows et db mysql distant
    Par gabole dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2004, 16h59
  5. connection a une bes mysql distante
    Par rollernox dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/07/2004, 11h22

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