PHP connexion à un serveur MySQL distant

Quand j'essaie de me connecter au travers de l'enveloppe de la machine locale à un serveur MySQL distant je peux réussir à se connecter:

> mysql -h remotehost -u myuser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

Mais quand j'essaie de me connecter par le biais d'un script PHP à l'aide de

$serverName = "remotehost"; //here I put the actual IP address
$userName = "myuser";
$passCode = "actualpassword";
mysql_connect($serverName,$userName,$passCode);

J'obtiens l'erreur suivante

Warning: mysql_connect(): Accès refusé pour l'utilisateur "myuser'@'localhost'
(using password: YES)

Le serveur MySQL distant version est 5.1.52 et la version de PHP sur la machine locale est 5.3.10-1ubuntu3.4

J'ai trouvé une question similaire, mais la réponse ne résout pas mon problème:
problème de connexion à la base de données mysql distante à l'aide de php

J'apprécierais vraiment de l'aide!

MODIFIER:

La sortie de php -i | grep "mysql"

/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini
mysql
MYSQL_SOCKET => /var/run/mysqld/mysqld.sock
MYSQL_INCLUDE => -I/usr/include/mysql
MYSQL_LIBS => -L/usr/lib/i386-linux-gnu -lmysqlclient_r
mysql.allow_local_infile => On => On
mysql.allow_persistent => On => On
mysql.connect_timeout => 60 => 60
mysql.default_host => no value => no value
mysql.default_password => no value => no value
mysql.default_port => no value => no value
mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
mysql.default_user => no value => no value
mysql.max_links => Unlimited => Unlimited
mysql.max_persistent => Unlimited => Unlimited
mysql.trace_mode => Off => Off
mysqli
MYSQLI_SOCKET => /var/run/mysqld/mysqld.sock
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
PDO drivers => mysql
pdo_mysql
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
  • Vous dire que ses un serveur distant, mais le message d'erreur indique que localhost. Qui est-il?
  • c'est l'erreur que je reçois dans la machine locale quand j'essaie de me connecter au serveur distant
  • myuser n'est autorisé à se connecter à partir de localhost. Vous avez besoin de changer/ajouter un utilisateur qui permet à votre ordinateur hôte.
  • Pourquoi êtes-vous à l'aide de la longue-déconseillé mysql_ bibliothèque de code? Elle a été abandonnée il y a plusieurs années et supprimé dans les PHP7. Aucun nouveau code doit être écrit à l'aide de cette bibliothèque. Il vous laisse vulnérable à des attaques par injection SQL (en raison de l'absence de prise en charge des requêtes paramétrées) et, potentiellement, d'autres les vulnérabilités non corrigées. Commutateur à l'aide de mysqli ou PDO dès que possible, et puis apprendre comment écrire des requêtes paramétrées pour protéger vos données à partir des entrées malveillantes. Voir bobby-tables.com pour une explication simple des risques et des exemples de code PHP pour écrire des requêtes en toute sécurité.
  • mysql_ a été utilisé seulement à des fins d'illustration
  • Ok, bon, mais nous n'étions pas à le savoir. Je vois beaucoup de véritable code, là où les gens sont de l'écriture de nouveaux logiciels à l'aide, ce qui est très inquiétant. Je ne peux que supposer que les gens sont involontairement à la suite de très out-of-date de tutoriels ou de quelque chose.

InformationsquelleAutor Vasilis | 2013-03-17