Mysql : impossible de se connecter [Résolu/Fermé]

Signaler
Messages postés
54
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
16 septembre 2013
-
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
-
Bonjour,

j'arrive pas à connecter le client MYSQL via un terminal linux.
j'ai toujours le message d'erreur l'hôte ne peut pas se connecter.
j'ai redémarré le serveur mysql changer le mot de passe pour ce connecter au serveur
toujours le même message d'erreur .
Merci pour vos aides d'avance.


3 réponses

Messages postés
54
Date d'inscription
lundi 19 septembre 2005
Statut
Membre
Dernière intervention
16 septembre 2013
23
Bonsoir,
Merci ça marche j'ai changé le port d'ecoute.
j'ai un autre message d'erreur pour la creation de table
Message d'erreur:
mysql> CREATE TABLE animal (nom VARCHAR(20), maitre VARCHAR(20),
-> espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE);
ERROR 1046 (3D000): No database selected
Merci d'avance
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 141
Il faut d'abord créer une database et se placer dedans :
http://dev.mysql.com/doc/refman/5.0/fr/create-database.html

CREATE DATABASE IF NOT EXISTS mabase;  
use mabase;  
CREATE TABLE animal (nom VARCHAR(20), maitre VARCHAR(20), espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE); 


On aurait aussi pu (une fois la base créée) éviter d'utiliser le "use mabase;" qui est spécifique à mysql et taper quelque chose du genre :

CREATE TABLE mabase.animal (nom VARCHAR(20), maitre VARCHAR(20), espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE);


Si tu reçois une erreur du genre permission denied, c'est sans doute que l'utilisateur avec lequel tu te connectes à la base n'a pas les droits CREATE.
https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_create

Pour des questions différentes du problème initial, merci d'ouvrir un nouveau fil de discussion.

Bonne chance et bonnes fêtes ;-)
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 141
Il faudrait que tu précises un peu ton problème :
- est-ce que le client et le serveur sont sur la même machine ?
- si ce sont deux machines distinctes, quelle bind-address as-tu configuré dans /etc/mysql/my.cnf ?
- quelle commande mysql lances-tu ?

Dans l'idée :

1) Si le client et le serveur sont sur la même machine, ton serveur n'a pas besoin d'écouter de connexions entrantes sur le réseau. Pour se connecter il faut simplement lancer :

mysql -u root -p


Il faut au préalable vérifier que mysqld (le démon mysql est lancé et écoute sur le port 3306, ou s'il écoute sur un autre port, il faut le préciser dans la commande ci-dessus) :

ps aux | grep mysql
netstat -ntlp | grep 3306


2) Si ce sont deux machines distinctes, il faut faire les vérifications ci-dessus, mais aussi vérifier que la bind-address utilisée par mysqld est 0.0.0.0, ce qui signifie qu'une connexion entrante mysql peut arriver sur n'importe quelle interface réseau (on peut aussi la restreindre à une interface réseau particulière). Pour cela il faut corriger en root /etc/mysql/my.cnf et relancer mysqld typiquement avec une commande de ce genre :

service mysql restart
/etc/init.d/mysql restart


Ensuite, si l'IP du serveur est 11.22.33.44, côté client il faut lancer pour se connecter en tant que "toto" :

mysql -u toto -p -h 11.22.33.44


Mais même là, ce n'est pas forcément suffisant, car dans mysql, un profil est identifié par le couple (login, ip de provenance). Cela signifie que si le compte toto n'est configuré qu'en local ('toto'@'localhost'), son accès sera refusé. Pour cela, il faut ajouter un compte 'toto'@'%' comme indiqué ici
https://dev.mysql.com/doc/refman/5.6/en/create-user.html
https://dev.mysql.com/doc/refman/5.6/en/account-names.html

Pour cela, il faudra te connecter en root en local (donc lancer le client depuis la machine qui fait office de serveur) et lancer une commande du genre :

GRANT ALL PRIVILEGES ON mabase.* TO 'toto'@'%' IDENTIFIED BY 'mon mot de passe'


Ceci donnera à toto la possibilité de se connecter à la base "mabase" et d'avoir tous les droits dessus (on peut évidemment donner des droits plus restreints, et de manière générale il vaut mieux donner des droits aussi restreints que possible = juste le nécessaire).

Bonne chance