Bonsoir,
J'ai une base de données MYSQL sur un serveur A.
Je travaille avec Laravel. Quand je suis en local, sur mon wamp, je peux interroger la base de donnée sur A sans aucun problème
Si je suis une machine virtuelle, ayant donc sa propre installation de php et un driver MYSQL, mon code sur Laravel fonctionne, sauf que je n'arrive pas à contacter la base de données sur A.
Tous mes controllers qui effectuent la moindre requête vers cette DB retourne invariablement une erreur 500 avec un "MYSQL Connection timeout"
Au début, je pensais que la base de données n'acceptait pas les requêtes de l'extérieur, mais pourtant j'arrive à la contacter depuis mon localhost donc ça ne doit pas etre ça
Qu'est ce qui peut provoquer un Connection Time Out? Un port 3306 non ouvert sur ma VPN ferait ça?
quand tu dis machine virtuelle , tu veux dire vagrant? avec Homestead?
parce que c'est ce que j'utilise perso et je fais du Laravel.
je sais pas si j'ai bien compris ce que tu essayes de faire, tu veux te connecté a ta BDD qui est sur le système Hote a partir de la machine virtuelle?
Si c'est le cas alors ce n'est pas la bonne manière, tu devrais avoir ton environnement de dev sur la VM
En fait, j'ai un serveur A qui contient mes bases de données. Je peux l'interroger depuis mon localhost (wamp) sans soucis, mais depuis un serveur nginx, la moindre requête sql tourne pendant 30 secondes et donne un "connection timeout".
Sauf que le serveur nginx est sur une VM.
---
Pour le type de machine virtuelle, malheureusement je ne sais pas. En fait, c'est un collègue qui a monté la VM et la rendu accessible depuis l'extérieur, en précisant que tout était fait et que je devais l'utiliser comme serveur de démonstration pour le client.
Problème, il est parti en vacance pour 3 semaines et je me suis rendu compte qu'aucun driver MYSQL n'était installé.
Laravel me criait "sql driver not found" donc j'ai fais quelques recherches.
Vu que j'ai un accès ssh, j'ai pu faire un coup de "sudo apt get install php7-mysql" qui a l'air d'avoir marché puisque depuis l'erreur est différente et est devenue "connection timeout"
https://laravel.com/docs/5.6/homestead
C'est sans doute parce que ton serveur MySQL n'écoute que sur 127.0.0.1 (la conf par défaut). Dans le fichier de conf de MySQL, tu dois indiquer qu'il doit écouter sur 0.0.0.0 ou sur 192.168.X.Y (@see bind-address). Il faut également que ton utilisateur puisse se connecter depuis la machine distante ("Tout client" si tu passes par phpmyadmin pour créer ton compte, soit "%").