web-dev-qa-db-fra.com

Impossible de se connecter à distance à MySQL

J'ai 3 serveurs et 1 machine Windows fonctionnant dans un LAN

HTTP server (Apache2, PHP5 & phpmyadmin) - 10.0.0.10
DNS - 10.0.0.1
MySQL - 10.0.0.40
Windows - 10.0.0.157

Je viens d'installer une nouvelle copie de mysql sur le serveur mysql. J'ai d'abord commenté l'adresse de liaison. J'ai accordé des privilèges en procédant comme suit.

CREATE USER 'https'@'localuser' IDENTIFIED BY 'password';
CREATE USER 'https'@'10.0.0.10' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';

Cependant, chaque fois que j'essaie de me connecter à mysql via le serveur http, les événements suivants se produisent

mysql -u https -p
enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock'(2)

Quand j'essaye

mysql -h 10.0.0.40 -P 3306 -u https -p

Je reçois une erreur différente

ERROR 1045 (28000): Access denied for user 'https'@'10.0.0.10' (Using password: Yes)`

Je ne sais pas pourquoi cela se produit pour autant que je sache, j'ai fait tout ce dont j'ai besoin pour configurer? :(

Dans ma table mysql pour les utilisateurs, j'ai les éléments suivants

user  | Host  
https  %
https   10.0.0.10
sqlserver   127.0.0.1
sqlserver ::1
debian-sys-maint  localhost
https    localhost
sqlserver    localhost
sqlserver    raspberrypi

Quelqu'un peut-il m'orienter dans la bonne direction, s'il vous plaît? J'ai cherché autour de moi et tout ce que je vois pointe vers la mise en commentaire de la ligne d'adresse de liaison.

Edit Je ne peux même pas me connecter en utilisant localement en utilisant un utilisateur autre que sqlserver qui était le compte root qui a été renommé. J'ai essayé d'ajouter de nouveaux comptes et de me connecter comme eux localement, toujours le même problème!

1
Xiah

Pour répondre à ma propre question à laquelle Jos a en partie répondu.

Vous ne devez pas commenter la ligne d'adresse de liaison (dans /etc/my.cnf). Au lieu de cela, vous devez le pointer vers l'adresse IP du serveur, c'est-à-dire 10.0.0.40, et redémarrez MySQL.

Cela combiné avec

GRANT ALL PRIVILEGES ON *.* TO ‘https’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
au lieu de
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
a résolu le problème. J'espère que cela aidera d'autres personnes ayant le même problème.

Merci pour l'aide les gars!

2
Xiah

Le service est-il démarré? Sinon (ou vous n'êtes pas sûr), exécutez:

Sudo service mysql start
1
Niklas Lindskog

si vous exécutez

netstat -an | grep 3306

voyez-vous une entrée avec LISTEN pour le port 3306?

1
Styrofoam