2010-08-19 6 views
4

J'ai besoin de se connecter à une base de données MySQL à distance et ont créé le code de connexion suivant:Impossible de se connecter au serveur MySQL sur IPAddress (10061)

<?php 
/* Set Variables */ 
$host="myipaddress"; 
$db="mydbname"; 
$username="dbuser"; 
$pass="mypass"; 

/* Attempt to connect */ 
$mysqli=new mysqli($host,$username,$pass,$db); 
if (mysqli_connect_error()){ 
die('Connect Error (' . mysqli_connect_errno() . ') ' 
. mysqli_connect_error()); 
echo 'Success... ' . $mysqli->host_info . "\n"; 

$mysqli->close(); 

} 
?> 

Pour des raisons de sécurité, je ne l'ai pas fourni le réel valeurs variables Quand je lance sur mon système de développement, je reçois

Connect Error (2003) Can't connect to MySQL server on 'myipaddress' (10061) 

Mon PHP est un peu rouillé, quelqu'un peut identifier où mon code est défectueux? Notez que dbuser a les privilèges select, insert et update sur le nom de la base de données défini en tant que variable.

Merci, Sid

Modifier J'apporté des modifications à my.cnf et redémarrés mysql. Je reçois maintenant l'accès refusé pour l'utilisateur 'dbuser' @ 'mycurrenthostname' (en utilisant le mot de passe YES). Quand j'utilise mysql -u dbuser -p depuis la ligne de commande, je peux me connecter. J'ai accordé l'insertion, la mise à jour et la sélection à dbuser avec l'hôte '%' pour que dbuser puisse se connecter de n'importe où.

J'ai lu le guide de référence de MySQL à propos de cette erreur, mais je suis toujours coincé. Y at-il un problème avec mon code, maintenant que my.cnf a été corrigé?

+0

vous êtes sûr que les autorisations sont configurés qui vous permettent de vous connecter? – Galen

+0

Oui, j'ai accordé des permissions à dbuser et j'ai fait des privilèges de flush par la suite. – SidC

+0

my.cnf contient: # skip-networking # enable-nommés tuyaux skip-innodb max-connexions = 30 bind-address = 127.0.0.1 – SidC

Répondre

13

Vérifiez que votre pare-feu permet des connexions à travers sur le port 3306.

Vérifiez le paramètre de configuration MySQL bind-address dans my.cnf pour vous assurer qu'il permet à des connexions à distance.

Il y a des informations et des conseils de dépannage ici:

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

+1

Merci pour le lien. mysqld est en cours d'exécution, mais ne peut pas exécuter les premières commandes mysqladmin dans cet article. Les deux variables mysqladmin et la version mysqladmin retournent l'accès refusé à l'utilisateur root @ localhost en utilisant le mot de passe NO. Où se trouve le fichier my.cnf et comment modifier l'adresse de liaison? Merci:) – SidC

3

Selon la documentation MySql, L'erreur (2003) Impossible de se connecter au serveur MySQL sur 'server' (10061) indique que la connexion réseau a été refusée. Vous devez vérifier qu'un serveur MySQL est en cours d'exécution, que les connexions réseau sont activées et que le port réseau que vous avez spécifié est celui configuré sur le serveur.

Je ne suis pas familier avec php, mais le problème peut ne pas être dans votre code.

+0

Cette erreur peut également apparaître sur Windows si vous n'avez pas les privilèges pour créer ou accéder aux fichiers de données innoDb. – Dubas

Questions connexes