Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi mon code php ne se connecte-t-il pas à ma base de données MySql distante ?

La première chose que je vérifierais (si vous ne l'avez pas fait) est que vous pouvez en fait vous connecter à la base de données à partir de l'ordinateur qui exécute votre script PHP. Ceci pour exclure un problème de réseau ou de pare-feu.

La première chose serait de cingler le serveur. Dans une invite DOS, exécutez :

ping servername

Où "servername" est la même chaîne que vous avez mise dans votre script PHP ci-dessus. Si cela ne répond pas avec une chaîne similaire à celle ci-dessous, en particulier, le premier mot n'est pas "Répondre":

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

Cela signifie qu'il n'y a probablement aucune connectivité entre l'ordinateur exécutant le script PHP et le serveur mysql. Je vérifierais ensuite si le serveur et l'ordinateur sont correctement connectés au réseau, si le serveur est opérationnel, et s'il n'y a pas de pare-feu sur votre ordinateur exécutant le script PHP ou sur le serveur.

Maintenant, si votre test ci-dessus affiche "Répondre" au ping, vous pouvez tester si vous pouvez vous connecter au service Mysql depuis votre serveur php. Pour cela, vous pouvez utiliser Mysql workbench (http://dev.mysql.com/downloads/workbench/ ) et à partir de là, créez une connexion avec les paramètres de base de données que vous donnez à votre script. Si vous ne pouvez pas vous connecter à Mysql Workbench, vous devrez peut-être désactiver un pare-feu sur votre serveur Mysql, un pare-feu sur votre ordinateur exécutant PHP ou activer le serveur Mysql pour qu'il accepte les connexions à distance pour la base de données et le nom d'utilisateur que vous utilisez dans votre script PHP ( certaines distributions serveur Mysql sont installées pour n'accepter que les connexions locales pour des raisons de sécurité).

Si le problème est une permission dans le serveur (l'utilisateur ne peut se connecter que localement mais pas depuis un ordinateur distant par exemple), vous pouvez activer la permission dans le serveur Mysql avec la commande GRANT :http://dev.mysql.com/doc/refman/5.1/en/grant.html