Mysql et apache sur 2 serveurs distincts

Mysql et apache sur 2 serveurs distincts - SQL/NoSQL - Programmation

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

Reply

Marsh Posté le 28-02-2004 à 18:19:11   

Reply

Marsh Posté le 28-02-2004 à 18:34:06    

tu as quelle syntaxe dans ton mysql_connect ?

Reply

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.

Reply

Marsh Posté le 28-02-2004 à 18:58:40    

et tu as essayé avec l'adresse IP ?

Reply

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

Reply

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

Reply

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 :jap:

Reply

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.
 
vérifie la config :jap:


 
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

Reply

Marsh Posté le 28-02-2004 à 19:19:04    

opfc a écrit :


 
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


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 [:spamafote]

Reply

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  :(

Reply

Marsh Posté le 28-02-2004 à 19:24:22   

Reply

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 :)

Reply

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
 
j'espère que ça t'aidera :)


 
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

Reply

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 ?

Reply

Marsh Posté le 28-02-2004 à 22:38:37    

ratibus a écrit :

Est-ce que la connexion distante marche ?
(juste la connexion)
Ou bien as-tu un access denied ?


 
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.

Reply

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)

Reply

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 :D

Reply

Marsh Posté le 29-02-2004 à 13:47:38    

ratibus a écrit :

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)


 
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

Reply

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.
 
Et surtout, le truc con : bien penser à faire un 'FLUSH PRIVILEGES' ensuite :D


 
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

Reply

Marsh Posté le 29-02-2004 à 14:36:53    

et a la suite de tout ça, j'ai bien fais un flush privilege

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed