Connection base de donnée FreeBSN
Bonsoir,
J'ai voulu me lancer dans un petit projet, fait de me faire un serveur priver de jeu pour quelque personnes, le problème c'est que je ne peut pas me connecter a ma base de donnée.
J'ai un PC virtuel ( Virtual Box ), avec FreeBSN et Mysql.
Connecter sur la Carte réseau Hamachi pour que le serveur sois disponible un peu partout.
Le d démarrage ce passe bien mais impossible de me connecter j'ai regarder pas mal de forum, mais je suis toujours au même problème.
Si vous avez besoin de plus d'informations, dites le moi, même que je vous face une vidéo de démarrage de FreeBSN il y a aucun problème, j'aimerai jusque que cela marche.
Merci d'avance pour votre aide.
J'ai voulu me lancer dans un petit projet, fait de me faire un serveur priver de jeu pour quelque personnes, le problème c'est que je ne peut pas me connecter a ma base de donnée.
J'ai un PC virtuel ( Virtual Box ), avec FreeBSN et Mysql.
Connecter sur la Carte réseau Hamachi pour que le serveur sois disponible un peu partout.
Le d démarrage ce passe bien mais impossible de me connecter j'ai regarder pas mal de forum, mais je suis toujours au même problème.
Si vous avez besoin de plus d'informations, dites le moi, même que je vous face une vidéo de démarrage de FreeBSN il y a aucun problème, j'aimerai jusque que cela marche.
Merci d'avance pour votre aide.
A voir également:
- Connection base de donnée FreeBSN
- Base de registre - Guide
- Gmail connection - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
4 réponses
Quelle est la commande que tu tentes de lancer pour te connecter à ta base mysql et quel est le message d'erreur ?
Brièvement : un utilisateur mysql est identifié par son login, sa provenance et son mot de passe. Cela veut notamment dire qu'un utilisateur qui vient de deux endroits différents peut conduire à une identification différente (ou dans un cas la possibilité de s'identifier dans l'autre non).
Le premier piège, c'est qu'il ne faut pas oublier l'option -p si le compte est protégé par un mot de passe, sinon mysql ne te permettra pas de le saisir. Exemple :
Traditionnellement un serveur mysql n'écoute que le trafic local (ie les connexions provenant d'un client mysql lancé sur la même machine que le serveur). Ceci est spécifié par l'attribut bind-address (127.0.0.1 pour le trafic local, l'IP d'une interface réseau pour écouter le trafic de cette interface, 0.0.0.0 pour écouter tout le trafic) dans /etc/mysql/my.cnf ? Dans ton cas, cherches-tu à établir une connexion distante, et si oui, as-tu corrigé cet attribut et as-tu relancé mysql ?
Par ailleurs as-tu vérifié que mysql tournait, qu'il écoutait sur le port que tu croyais, etc .... ?
Enfin as-tu créé un profil mysql (par défaut, il n'y a que root@localhost) pour ton jeu avec la directive CREATE USER ? Typiquement, quand tu installes une application, celle-ci utilise un profil et une base mysql dédiée, ce qui nécessite un travail préalable en root (CREATE USER ..., CREATE DATABASE..., GRANT ...).
Il faudrait que tu nous en dise un peu plus sur ce que tu cherches à faire avec ta base mysql pour plus de précisions...
Bonne chance
Brièvement : un utilisateur mysql est identifié par son login, sa provenance et son mot de passe. Cela veut notamment dire qu'un utilisateur qui vient de deux endroits différents peut conduire à une identification différente (ou dans un cas la possibilité de s'identifier dans l'autre non).
Le premier piège, c'est qu'il ne faut pas oublier l'option -p si le compte est protégé par un mot de passe, sinon mysql ne te permettra pas de le saisir. Exemple :
mysql -u root -p
Traditionnellement un serveur mysql n'écoute que le trafic local (ie les connexions provenant d'un client mysql lancé sur la même machine que le serveur). Ceci est spécifié par l'attribut bind-address (127.0.0.1 pour le trafic local, l'IP d'une interface réseau pour écouter le trafic de cette interface, 0.0.0.0 pour écouter tout le trafic) dans /etc/mysql/my.cnf ? Dans ton cas, cherches-tu à établir une connexion distante, et si oui, as-tu corrigé cet attribut et as-tu relancé mysql ?
nano /etc/mysql/my.cnf /etc/init.d/mysql restart
Par ailleurs as-tu vérifié que mysql tournait, qu'il écoutait sur le port que tu croyais, etc .... ?
ps aux | grep mysql netstat -ntlp | grep mysql
Enfin as-tu créé un profil mysql (par défaut, il n'y a que root@localhost) pour ton jeu avec la directive CREATE USER ? Typiquement, quand tu installes une application, celle-ci utilise un profil et une base mysql dédiée, ce qui nécessite un travail préalable en root (CREATE USER ..., CREATE DATABASE..., GRANT ...).
mysql -u root -p CREATE USER 'toto'@'localhost ' IDENTIFIED BY password; CREATE DATABASE madatabase; GRANT ALL PRIVILEGES ON madatabase.* TO 'toto'@'localhost ';
Il faudrait que tu nous en dise un peu plus sur ce que tu cherches à faire avec ta base mysql pour plus de précisions...
Bonne chance
Si c'est comme sous linux, la configuration mysql est dans /etc/mysql/my.cnf (ou chemin approchant).
Pour voir le port sur la machine qui héberge le serveur mysql, en root :
(reporte-moi le résultat)
Tu peux déjà tester si la connexion marche en local en tentant de te connecter au serveur mysql depuis la machine elle même. Par exemple pour te connecter à la base avec le profil root :
Si tu parviens à te connecter avec succès tu devrais voir une invite du genre :
Pour quitter, tape la commande "quit".
Ensuite ce qui serait pas mal, c'est si tu veux te connecter à un autre profil que root (indique moi lequel) et/ou depuis un client distant (ce qui semble être le cas), il faudrait que tu me donnes le résultat de :
(reporte-moi le résultat).
Bonne chance
Pour voir le port sur la machine qui héberge le serveur mysql, en root :
netstat -ntlp | grep mysql
(reporte-moi le résultat)
Tu peux déjà tester si la connexion marche en local en tentant de te connecter au serveur mysql depuis la machine elle même. Par exemple pour te connecter à la base avec le profil root :
mysql -u root -p
Si tu parviens à te connecter avec succès tu devrais voir une invite du genre :
mysql>
Pour quitter, tape la commande "quit".
Ensuite ce qui serait pas mal, c'est si tu veux te connecter à un autre profil que root (indique moi lequel) et/ou depuis un client distant (ce qui semble être le cas), il faudrait que tu me donnes le résultat de :
mysql -u root -p -e "select user,host from mysql.user;" grep bind /etc/mysql/my.cnf
(reporte-moi le résultat).
Bonne chance
Voici une petite vidéo des tests effectuer:
https://www.youtube.com/watch?v=riPYrWZA1sI
Mais il y a un autre problème...
Mais j'arrive a me connecter d'une autre façon pour avoir cela:
Sans me demander de mot de passe cette fois si...
https://www.youtube.com/watch?v=riPYrWZA1sI
Mais il y a un autre problème...
Mais j'arrive a me connecter d'une autre façon pour avoir cela:
mysql>
Sans me demander de mot de passe cette fois si...
Bon ce qui est dommage c'est que c'est un freebsd et donc que les options(notamment netstat) diffèrent de linux.
Inutile de me faire une vidéo, normalement tu peux copier coller du texte ce sera plus pratique pour moi :-)
Ce qui est bizarre c'est que tu n'arrives pas à te connecter en root à ta base. Le fait que tu aies le message "Access denied" laisse penser que ton serveur mysql tourne bien. Le fait qu'il tourne en local exclue un problème de bind-address (donc on peut oublier le netstat) ou de pare-feu.
Pour moi soit tu tapes mal ton mot de passe, soit le compte root@localhost n'est pas configuré (ce qui paraît douteux). Autre possibilité, il n'est pas protégé par un mot de passe. Auquel cas il faut juste taper :
Est-ce que tu as configuré un mot de passe mysql à l'isntallation de mysql ?
Et sinon est ce que cette commande te permet de te connecter à la base ?
Bonne chance
Inutile de me faire une vidéo, normalement tu peux copier coller du texte ce sera plus pratique pour moi :-)
Ce qui est bizarre c'est que tu n'arrives pas à te connecter en root à ta base. Le fait que tu aies le message "Access denied" laisse penser que ton serveur mysql tourne bien. Le fait qu'il tourne en local exclue un problème de bind-address (donc on peut oublier le netstat) ou de pare-feu.
Pour moi soit tu tapes mal ton mot de passe, soit le compte root@localhost n'est pas configuré (ce qui paraît douteux). Autre possibilité, il n'est pas protégé par un mot de passe. Auquel cas il faut juste taper :
mysql -u root
Est-ce que tu as configuré un mot de passe mysql à l'isntallation de mysql ?
Et sinon est ce que cette commande te permet de te connecter à la base ?
Bonne chance
Je n'est rien configuré, il doit déja étre configuré,... ( normalment )
Voici ce qui ce passe :
https://www.casimages.com/i/111003041532961931.jpg.html
Mais j'aimerai que ça marche la connection a la base de données ....
Aussi dire ce que je veux faire avec ma base de données je sais pas si on m'aiderai.
A mon avis il faut que j'apprenne a me servir de FreeBSN, déjà depuis la création d'un utilisateur depuis FreeBSN et son administration. Afin de crée un serveur MYSQL et un utilisateur.
Voici ce qui ce passe :
https://www.casimages.com/i/111003041532961931.jpg.html
Mais j'aimerai que ça marche la connection a la base de données ....
Aussi dire ce que je veux faire avec ma base de données je sais pas si on m'aiderai.
A mon avis il faut que j'apprenne a me servir de FreeBSN, déjà depuis la création d'un utilisateur depuis FreeBSN et son administration. Afin de crée un serveur MYSQL et un utilisateur.
Bon ben ok, bonne intuition de ma part :-) Tu as une base de donnée dont le compte root@localhost est complètement ouvert :-) Ça veut dire qu'en l'état si quelqu'un se connecte sur ta machine fait ce qu'il veut de ta base de données mysql.
Personnellement je t'invite à créer proprement tes comptes mysql (cf create user).
https://dev.mysql.com/doc/refman/8.0/en/adding-users.html
Une fois que l'invite de commande apparaît lance la commande suivante en changeant password par un mot de passe de ton choix.
Désormais, pour te connecter à mysql, il faudra taper :
... et taper ton mot de passe.
Sur le même principe tu peux créer un autre utilisateur pour l'application sensée travailler avec mysql. Pour plus de précisions il faudrait que tu me dises
- quel est le nom de la base qui est manipulé par cette application (supposons que ce soit "mabase")
- quel login tu veux utiliser pour cette application (supposons que ce soit "monlogin")
- si cette application tourne sur la même machine que le serveur mysql, et si ce n'est pas le cas le hostname ou l'IP de la machine sur laquelle elle tourne (supposons que ce soit 11.22.33.44 ; sinon comme avant tu utilises localhost)
Dans ce cas, une fois identifié en root sur ta base lance :
Si l'application qui se connecte à la base est distance, il faut dire à mysql d'écouter le trafic réseau et plus seulement local. Attention car le fait de changer ça rend possible l'arrivée de connexions extérieures (ceci dit si elles arrivent avec la mauvaise IP, elles devraient se faire jeter), mais disons que ça peut être bien de rajouter un pare feu (iptables, ufw...) qui n'autorise que les connexion mysql venant de 11.22.33.44.
Bref, dans ce cas, il faut corriger /etc/mysql/my.cnf (ou chemin approchant) :
Va à la ligne bind-adress et remplace 127.0.0.1 par 0.0.0.0. Si tu sais que le trafic mysql arrivera par une interface donnée (par exemple la carte réseau ethernet) il vaut mieux mettre l'IP cette interface. Ça évitera que mysql écoute le trafic provenant d'autres interfaces réseau.
Ensuite, relance mysql avec une de ces deux commandes :
Dès lors, avec netstat (et les bonnes options !) tu devrais voir que mysql écoute désormais sur 0.0.0.0:3306 (sur n'importe quelle interface, sur le port 3306).
Ton application distante devrait alors pouvoir se connecter à mysql avec
- login : monlogin
- hôte : le hostname ou l'IP de ton serveur mysql
- le mot de passe monpassword
Typiquement, sur cette machine cliente, si le serveur mysql a pour IP 44.55.66.77 tu dois pouvoir t'y connecter avec la commande :
Bonne chance
Personnellement je t'invite à créer proprement tes comptes mysql (cf create user).
https://dev.mysql.com/doc/refman/8.0/en/adding-users.html
mysql -u root
Une fois que l'invite de commande apparaît lance la commande suivante en changeant password par un mot de passe de ton choix.
CREATE USER 'root'@'localhost ' IDENTIFIED BY password;
Désormais, pour te connecter à mysql, il faudra taper :
mysql -u root -p
... et taper ton mot de passe.
Sur le même principe tu peux créer un autre utilisateur pour l'application sensée travailler avec mysql. Pour plus de précisions il faudrait que tu me dises
- quel est le nom de la base qui est manipulé par cette application (supposons que ce soit "mabase")
- quel login tu veux utiliser pour cette application (supposons que ce soit "monlogin")
- si cette application tourne sur la même machine que le serveur mysql, et si ce n'est pas le cas le hostname ou l'IP de la machine sur laquelle elle tourne (supposons que ce soit 11.22.33.44 ; sinon comme avant tu utilises localhost)
Dans ce cas, une fois identifié en root sur ta base lance :
CREATE DATABASE mabase; CREATE USER 'monlogin'@11.22.33.44 IDENTIFIED BY monpassword; GRANT ALL PRIVILEGES ON mabase.* TO 'monlogin'@11.22.33.44;
Si l'application qui se connecte à la base est distance, il faut dire à mysql d'écouter le trafic réseau et plus seulement local. Attention car le fait de changer ça rend possible l'arrivée de connexions extérieures (ceci dit si elles arrivent avec la mauvaise IP, elles devraient se faire jeter), mais disons que ça peut être bien de rajouter un pare feu (iptables, ufw...) qui n'autorise que les connexion mysql venant de 11.22.33.44.
Bref, dans ce cas, il faut corriger /etc/mysql/my.cnf (ou chemin approchant) :
nano /etc/mysql/my.cnf
Va à la ligne bind-adress et remplace 127.0.0.1 par 0.0.0.0. Si tu sais que le trafic mysql arrivera par une interface donnée (par exemple la carte réseau ethernet) il vaut mieux mettre l'IP cette interface. Ça évitera que mysql écoute le trafic provenant d'autres interfaces réseau.
Ensuite, relance mysql avec une de ces deux commandes :
service mysql restart /etc/init.d/mysql restart
Dès lors, avec netstat (et les bonnes options !) tu devrais voir que mysql écoute désormais sur 0.0.0.0:3306 (sur n'importe quelle interface, sur le port 3306).
Ton application distante devrait alors pouvoir se connecter à mysql avec
- login : monlogin
- hôte : le hostname ou l'IP de ton serveur mysql
- le mot de passe monpassword
Typiquement, sur cette machine cliente, si le serveur mysql a pour IP 44.55.66.77 tu dois pouvoir t'y connecter avec la commande :
mysql -u monlogin -p -h 44.55.66.77
Bonne chance
Pour me connecter j'uttilise "Navicat Lite", l'IP qui est mise dans le topic est celle de Hamachi, mais je me demande c'est ce n'est pas un problème de port.
Mais comment faire pour voir la configuration du serveur mysql sur FreeBSN ?
Quel commande utiliser pour afficher sa configuration ?
Je vais voir ce que tu ma dit pour te donner plus d'information.
Et merci :)