La question peut paraître enfantine mais ça ne marche pas ...
J'ai un serveur Linux avec mysql client et php qui doit attaquer une base mysql sur un serveur IIS/PHP/Mysql...
j'y accéde bien en ligne de commande a mon serveur SQL ...
[root@pecom01] mysql -h 141.181.X.X -u root - p util_ecom
Enter password:****
SELECT * FROM users;
[...]
je souhaite y accéder par php sur ce même serveur pour extraire et intégrer des données
[...]
echo "pouet";
$a="12345678";
echo "test".$a."\r\n";
// Paramètres persos
$host = "141.181.X.X"; // voir hébergeur
$user = "root"; // vide ou "root" en local
$pass = "root"; // vide en local
$bdd = "util_ecom"; // nom de la BD
// connexion
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter AU SERVEUR!!!\r\n");
@mysql_select_db("$bdd")
or die("Impossible de se connecter A LA BDD!!!\r\n");
$query= "SELECT * FROM users ORDER BY NOCLI ";
$result = mysql_query($query);
while($val = mysql_fetch_array($result)){
$i = $i + 1;
[...]
et boom qd je l'execute il me dit :
pouettest12345678
Impossible de se connecter AU SERVEUR!!!
j'ai mis a jour le /etc/php.ini
module mysql...
mysql.default_port =3306
mysql.default_host =141.181.X.X
mysql.default_user =root
mysql.default_password =root
mais toujours que dalle !!!
les droits d'acces au serveur sont bon :
root % ALL PRIVILEGES "Grant"
# module php-mysql
Posté par Sebastian . Évalué à 3.
Le module php-mysql est-il bien installé ?
Car sans celui-ci, php ne peut pas communiquer avec MySQL.
Le module peut porter un nom différent en fonction de la distribution.
Pour php4 : php4-mysql, pour php5 : php5-mysql.
De plus, il existe l'extension php5-mysqli, qui permet d'exploiter plus de fonctionnalités de MySQL (MySQL 4.1 et plus).
[^] # Re: module php-mysql
Posté par Cédric . Évalué à 1.
j'ai fais un extrait de phpinfo()
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.58
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_INCLUDE -I/usr/include/mysql
MYSQL_LIBS -L/usr/lib/mysql -lmysqlclient
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout -1 -1
mysql.default_host 141.181.X.X 141.181.X.X
mysql.default_password root root
mysql.default_port 3306 3306
mysql.default_socket no value no value
mysql.default_user root root
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
La config niveau directive a l'air d'être bonne
Par contre le fichier /var/lib/mysql/mysql.sock
n'existe pas ( de plus je ne dais pas a quoi y sert ... )
[^] # impression de deja vu
Posté par NeoX . Évalué à 1.
regarde que l'interface reseau localhost soit existante et active (IP 127.0.0.1)
sur ma dedibox elle etait up mais sans IP, du coup mysql ne demarrait pas => /var/lib/mysql/mysql.sock inexistant
je devais faire reactiver ma carte localhost et relancer le serveur mysql.
autre hypothese, tu as deja un service qui tourne sur le meme port que mysql (3306 par defaut), du coup mysql ne peut pas se lancer.
[^] # Re: impression de deja vu
Posté par Cédric . Évalué à 1.
mais bien sur un serveur distant
batch PHP / Linux Redhat ES3 => BDD mysql/ W2K/IIS/MYSQL
le serveur BDD fonctionne bien il y a deja des appli intranet PHP dessus et qui accede bien la BDD en local (phpmyadmin ...)
il y a rien sur le serveur d'appli qui tourne sur le port 3306 ... (netstat ...)
[^] # Re: impression de deja vu
Posté par NeoX . Évalué à 1.
visiblement ton serveur mysql demarre puisque des applis locales au serveur fonctionne (phpmyadmin), enfin j'espere que tu as essayé de te connecter quand meme. ;-)
il semblerait donc que ce soit :
- le serveur de base de donnée n'acceptent pas les acces distants
ou
- le serveur distant n'arrivent pas à se connecter sur le serveur de base de donnée... (parefeu ou autre)
quand tu nous dis que la ligne de commande fonctionne, je suppose que tu l'a faite sur le serveur distant ?
si oui, alors ce serait un probleme purement PHP, mais là je ne vois pas.
# localhost ?
Posté par NeoX . Évalué à 1.
car visiblement les serveurs web/php et mysql sont sur la meme machine.
attention au log/pass qui peuvent etre sensible à la casse
[^] # Re: localhost ?
Posté par Cédric . Évalué à 1.
le serveur qui contient PHP est un portail WEB...
Et ne doit en aucun cas contenir des données et ce pour plusieurs raisons :
1:/ Une notion de securité evidentes
2:/ En cas de multiplication du portail n'avoir qu'une instence de donnée est moins quiantes a gerer que plusieurs (synchro, maintenance, sauvegarde, etc ...)
# mysql_error();
Posté par andeus . Évalué à 3.
"root" != "". Essais de mettre "" à la place de "root" pour le mot de passe.
Sinon, essais mysql_error() pour avoir des détails sur le problème.
[^] # Re: mysql_error();
Posté par Cédric . Évalué à 1.
mysql_connect(): Access denied for user 'root'@'10.19.X.X' (using password: NO)
puis en mettant un pwd bidon ...
si je met le bon pwd ou un mauvais (diferrant de "" ) il me renvoye ...
mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /root/Script/test.php on line 17
il me met les message depuis que j'ai remplacer @mysql_connec(...);
par le
$link = mysql_connect(..);
pour faire le
mysql_error($link). "\n";
qui lui donne comme erreurs
mysql_error(): supplied argument is not a valid MySQL-Link resource in /root/Script/test.php on line 18
en gros il me demande un upgrading de mon mysql client...
[^] # Re: mysql_error();
Posté par duaner . Évalué à 2.
- mettre a jour tes libs mysql du coté client
- mettre a jour le mot de passe de l'utilisateur du coté serveur (ou recreer un compte) :
SET PASSWORD FOR 'root'@'10.19.X.X' = OLD_PASSWORD('bleh')
cf. http://dev.mysql.com/doc/refman/5.0/en/old-client.html
[^] # Re: mysql_error();
Posté par Cédric . Évalué à 1.
merci beaucoup...
c'est exactement ca
j'ai fait :
UPDATE mysql.user SET Password = OLD_PASSWORD('root') WHERE Host = '%' AND User = 'root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.22 sec)
je peut lister ma base et tout le tointoin ...
thanks !!!
@+ et encore merci...
# mysql_error ?
Posté par samyboy . Évalué à 2.
http://php.net/mysql_error
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.