[MySQL] Communication entre 2 serveurs

Mammouth du PHP | 725 Messages

24 sept. 2013, 05:43

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

ViPHP
ViPHP | 2577 Messages

24 sept. 2013, 10:31

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.

Mammouth du PHP | 725 Messages

25 sept. 2013, 03:37

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

ViPHP
ViPHP | 2577 Messages

25 sept. 2013, 12:02

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

Mammouth du PHP | 725 Messages

25 sept. 2013, 15:30

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