J'essaie de me connecter à un serveur MySQL distant à partir de mon ordinateur local virtualhost en utilisant le code suivant:
$conn = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error());
mysql_select_db($dbname, $conn) or die(mysql_error());
Mon problème est que je ne peux pas me connecter localement, recevant l'erreur:
Impossible de se connecter au serveur MySQL sur 'xxx.xxx.xxx.xxx' (10060)
Ce n'est pas le cas lorsque je télécharge le même fichier PHP sur le serveur. Je suis capable d'interroger la base de données sans aucun problème.
Je ne parviens pas non plus à me connecter via la ligne de commande, mais je peux accéder à cPanel, qui exclut toute possibilité d'interdiction accidentelle de mon adresse IP.
Mon serveur local exécute PHP 5.2.9, le serveur distant 5.2.12.
%
(n'importe quel hôte) (voir manual pour plus de détails)Le problème actuel est le premier, mais juste après que vous l'ayez résolu, vous obtiendrez probablement le second.
Il est très facile de connecter un serveur MySQL distant. Avec PHP, vous devez:
Créez un utilisateur MySQL sur un serveur distant.
Donner le privilège complet à l'utilisateur.
Connectez-vous au serveur en utilisant le code PHP (exemple ci-dessous)
$link = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db('sandsbtob',$link) or die ("could not open db".mysql_error());
// we connect to localhost at port 3306
Je viens de résoudre ce genre de problème… .. Ce que j'ai appris c'est:
my.cnf
et définir le bind-address = your.mysql.server.address
sous [mysqld]
vérifier si ça marche
mysql -u root -h your.mysql.server.address –p
créer un utilisateur (usr ou autre) avec% comme domaine et lui accorder l'accès à la base de données en question.
mysql> CREATE USER 'usr'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON testDb.* TO 'monty'@'%' WITH GRANT OPTION;
ouvrez le pare-feu pour le port 3306 (vous pouvez utiliser iptables. Assurez-vous d’ouvrir le port pour reveryone, ou si vous êtes en sécurité, autorisez uniquement l’adresse du client)
vous devriez pouvoir maintenant connecter le serveur mysql à partir de votre script php de serveur client.
Ce n'est peut-être pas la réponse à la question de l'affiche. Mais cela peut être utile aux personnes qui ont la même situation avec moi:
Le client a deux cartes réseau, une sans fil et une normale . Le ping au serveur peut être réussi.Toutefois, telnet serverAddress 3306
échouerait. Et se plaindre
Impossible de se connecter au serveur MySQL sur 'xxx.xxx.xxx.xxx' (10060)
lorsque j'essaie de me connecter à server.Alors, j’ai interdit les adaptateurs réseau normaux . Et essayé telnet serverAddress 3306
ça marche.