Mysql et apache sur 2 serveurs distincts - SQL/NoSQL - Programmation
Marsh Posté le 28-02-2004 à 18:55:20
black_lord a écrit : tu as quelle syntaxe dans ton mysql_connect ? |
$connexion=mysql_connect("nom_dns_du_serveur_mysql","user","pass" )
Depuis le serveur apache, je ping le serveur mysql avec son nom dns (donc pas de problème au niveau du nom).
C'est bien mysql qui refuse la connexion. De plus si depuis mon serveur apache (ou toute autre machine) je fais un telnet mon_serveur_mysql 3306, j'obtiens ceci :
[root@nicolas mnt]# telnet mysql 3306
Trying 192.168.0.254...
Connected to serveur.
Escape character is '^]'.
Connection closed by foreign host.
Marsh Posté le 28-02-2004 à 19:11:57
black_lord a écrit : et tu as essayé avec l'adresse IP ? |
c'est exactement pareil que je mette l'@ IP ou le nom dns
Marsh Posté le 28-02-2004 à 19:13:56
Au passage, voila ce que j'obtiens dans mon navigateur :
Warning: Lost connection to MySQL server during query in /var/www/html/site/index.php on line 2
Warning: MySQL Connection Failed: Lost connection to MySQL server during query in /var/www/html/site/index.php on line 2
Marsh Posté le 28-02-2004 à 19:13:57
par défaut MySQL doit empêcher les connexions autres que locales.
vérifie la config
Marsh Posté le 28-02-2004 à 19:16:55
THE REAL SMILEY a écrit : par défaut MySQL doit empêcher les connexions autres que locales. |
Ouai je m'en doute bien, mais sais tu où modifier cette config afin d'accepter des connexions autres que locales ?
Moi j'avais cru comprendre que cette config s'effectuait dans la table host de la base mysql. J'ai rajouté une entrée correspondant à mon serveur apache mais ca ne change strictement rien
Marsh Posté le 28-02-2004 à 19:19:04
opfc a écrit : |
Il me semble que c'est dans un fichier de config, pas dans une base.
je peux pas t'aider plus, j'ai pas de serveur sous la main
Marsh Posté le 28-02-2004 à 19:24:22
ca fait chier, je trouve aucune doc la dessus sur internet. Je crois qu'il va falloir que je me plonge dans la lourde documentation mysql en anglais
Marsh Posté le 28-02-2004 à 19:40:05
dans le fichier de conf (si tu es sous linux c'est /etc/mysql/my.cnf il me semble) il y a par défaut une option skip-networking qu'il faut commenter
j'espère que ça t'aidera
Marsh Posté le 28-02-2004 à 21:14:23
ratibus a écrit : dans le fichier de conf (si tu es sous linux c'est /etc/mysql/my.cnf il me semble) il y a par défaut une option skip-networking qu'il faut commenter |
Mes sevreurs sont sous Linux bien sur mais je n'est pas de ligne skip-networking dans mon fichier de conf my.cnf. Voila mon fichier en question (je ne l'ai jamais touché) :
[root@serveur phpmyadmin]# more /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Marsh Posté le 28-02-2004 à 21:34:40
Est-ce que la connexion distante marche ?
(juste la connexion)
Ou bien as-tu un access denied ?
Marsh Posté le 28-02-2004 à 22:38:37
ratibus a écrit : Est-ce que la connexion distante marche ? |
Qu est ce que tu veux dire par connexion distante ?
Si je fais un telnet une autre machine sur le port 3306 ca ne marche pas, la connexion s'établit masi se ferme aussi tot
[root@nicolas mnt]# telnet mysql 3306
Trying 192.168.0.254...
Connected to mysql.
Escape character is '^]'.
En lançant netstat -acnet sur le serveur j'obtiens cette ligne :
tcp 0 0 192.168.0.254:3306 192.168.0.10:1575 TIME_WAIT 0 0
Connection closed by foreign host.
Marsh Posté le 29-02-2004 à 10:23:11
sur ta machine "cliente" as-tu un client mysql installé ?
peux-tu faire : mysql -u root -p -h ip_de_ton_serveur_mysql mysql
(je mets root en exemple)
Marsh Posté le 29-02-2004 à 12:22:43
Il te faut ajouter deux entrées dans la base mysql. Une entrée dans la table 'db' en précisant bien le bon Host. Plus une entrée dans la table 'user', là encore en précisant bien le bon Host.
Et surtout, le truc con : bien penser à faire un 'FLUSH PRIVILEGES' ensuite
Marsh Posté le 29-02-2004 à 13:47:38
ratibus a écrit : sur ta machine "cliente" as-tu un client mysql installé ? |
Sur ma machine cliente j'ai également mysql (mais il est sensé disparaitre quand j'arriverai a faire ce que je veux).
Si je fait un mysql -u root -p -h 192.168.0.254 (=@IP du serveur mysql), voila le résultat :
Enter password:
ERROR 2013: Lost connection to MySQL server during query
[root@nicolas root]#
J'ai le meme message avec phpmyadmin
Marsh Posté le 29-02-2004 à 14:36:07
Core 666 a écrit : Il te faut ajouter deux entrées dans la base mysql. Une entrée dans la table 'db' en précisant bien le bon Host. Plus une entrée dans la table 'user', là encore en précisant bien le bon Host. |
Je pense avoir fait ce que tu me dis, mais ça ne marche tjr pas .
Je m'explique, j'ai phpmyadmin sur mon serveur apache, je l'ai configurer pour lui dire que le serveur mysql est "mysql" (et non localhost comme par défaut). Je l'ai mis en configuration mode "cookie".
J'ai égalment phpmyadmin sur mon serveur mysql (en mode coockie également). A partir de phpmyadmin sur le serveur mysql, j'ai ajouté un utilisateur "essai" sur l'hote correspondante au nom dns de mon serveur mysql. Dans la table mysql.db, j'ai rajouté une entrée avec comme hote le nom dns de mon serveur mysql et le user "essai".
Lorsque j'essai de me connecter à phpmyadmin installer sur le serveur apache avec l'utilisateur "essai" j'obtiens ce mesage :
#2013 - Lost connection to MySQL server during query
Lorsque j'essais de me connecter depuis mon serveur apache en ligne de commande j'obtiens ce message :
Enter password:
ERROR 2013: Lost connection to MySQL server during query
Marsh Posté le 29-02-2004 à 14:36:53
et a la suite de tout ça, j'ai bien fais un flush privilege
Marsh Posté le 28-02-2004 à 18:19:11
Bonjour,
je dispose d'un serveur web sur lequel tourne apache (mod_php, mod_perl ...) + mysql. Je viens de faire l'acquisition d'un deuxième serveur sur lequel je voudrais installer mon serveur mysql. Cela me permet de virer mysql sur mon ancien serveur afin de disposer uniquement de serveurs dédiés.
Mon problème, c'est que je n'arrive pas à me connecter à mon serveur mysql depuis qu'il est déporté sur une autre machine. Dans les scripts PHP permettant la connexion au serveur mysql, j'ai bien modifié le nom de la machine à laquelle se connecter mais la connexion échoue. Pour administrer mon serveur mysql j'utilise phpmyadmin 2.5.4 et j'ai rajouter dans la table host de la base mysql l'adresse de mon serveur web mais ça ne change rien, la connexion échoue encore.
Quelqu'un saurait il comment faire ?
merci d'avance