Page 1 sur 1

[MySQL] Communication entre 2 serveurs

Posté : 24 sept. 2013, 05:43
par rimie
Bonjour,

Si je suis sur un serveur avec une IP (aaa.bbb.ccc.ddd) est ce que je peux acceder a un autre serveur (eee.fff.ggg.hhh), et effectuer les operations quotiediennes (insert, select,..)

Merci

Re: [MySQL] Communication entre 2 serveurs

Posté : 24 sept. 2013, 10:31
par Mazarini
Oui, si le serveur l'autorise. Lors de la connexion, il y a un paramètre pour indiquer le serveur. Il faut juste remplacer localhost (ou 127.0.0.1) par le nom du serveur (ou son adresse IP).

Pour que le serveur accepte la connexion, il faut qu'il écoute l'extérieur et non pas uniquement les requêtes locales (voir fichier my.conf). Il faut également que l'utilisateur soit autorisé à se connecter depuis le serveur appelant (voir les colonnes user et host la table user dans la base mysql) et qu'il ait les privilèges pour faire les opérations nécessaire.

Re: [MySQL] Communication entre 2 serveurs

Posté : 25 sept. 2013, 03:37
par rimie
J'ai change bind-address par l'IP du serveur autorise

Code : Tout sélectionner

bind-address = 127.0.0.1 service mysql restart mysql stop/waiting start: Job failed to start
et quand je commente la ligne bind, le service mysql se redemarre

Re: [MySQL] Communication entre 2 serveurs

Posté : 25 sept. 2013, 12:02
par Mazarini
C'est l'adresse du serveur mysql qu'il faut mettre. Celle associée à eth0 en général.

Edit : Par contre, tu peux faire un filtrage sur l'adresse du serveur qui fait l'accès via iptables

Re: [MySQL] Communication entre 2 serveurs

Posté : 25 sept. 2013, 15:30
par rimie
en gros c'est:

Serveur distante:

Se connecter au MySQL
$ mysql -u root -p

mysql> GRANT ALL ON DATABASE.* TO USERNAME@'FROM_IP' IDENTIFIED BY 'PASSWORD';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

Edition du fichier my.conf de MySQL

Code : Tout sélectionner

vim /etc/mysql/my.cnf #bind-address = 127.0.0.1 service mysql restart
Autoriser l'IP du serveur local:

Code : Tout sélectionner

iptables -A INPUT -i eth0 -s 176.31.243.9 -p tcp --destination-port 3306 -j ACCEPT
Serveur Local: on teste

Code : Tout sélectionner

mysql -u USERNAME -p -h TO_IP
J'espere me confirmer les etapes, et que je n'ai zappe aucune