Problème mysql (mdv 2006) [Résolu] - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 23-05-2006 à 13:19:22
MySQL est bien lancé ?
Vérifie en tapant :
Code :
|
Marsh Posté le 23-05-2006 à 13:30:15
Oui oui bien entendu mysql est lancé.
Mais, par exemple, il est bien possible de séparer mysql et apache?
Je veux dire on peut avoir d'un coté une machine serveur apache et de l'autre une machine serveur mysql?
Marsh Posté le 23-05-2006 à 13:50:33
naruto192 a écrit : Oui oui bien entendu mysql est lancé. |
Oui, bien sur que c'est possible. Est ce que tu as testé en ligne de commande pour voir si le problème vient de PHP ou de MySQL?
Essaye de récupérer les erreur MySQL dans ton code PHP :
Code :
|
Marsh Posté le 23-05-2006 à 13:55:06
naruto192 a écrit : |
J'avais pas fait attention... le message d'erreur est clair : impossible de se connecter au serveur MySQL local. Ton problème vient de là, tu dois avoir un soucis dans ta conf.
Marsh Posté le 23-05-2006 à 13:58:18
ok, en mettant ton code (exécuté sur le serveur A), cela me dit :
not connected : lost connection to mysql server during query
Oui, j'imagine bien que cela va vient de ma conf de mysql en faite, mais que faire pour lui dire pour que mon code ci-dessus fonctionne depuis le serveur A?
Je pensais déclarer le serveur mysql non plus comme localhost mais comme 192.168.0.2 car il faut bien que dans le code situé sur le machine A, je précise que la base de donnée est à l'adresse 192.168.0.2.
Mais je ne sais pas où configurer cela.
Marsh Posté le 23-05-2006 à 14:02:57
Ouaip c'est possible.
Dans ton my.cnf remplace :
Code :
|
Par :
Code :
|
Marsh Posté le 23-05-2006 à 14:05:21
naruto192 a écrit : ok, en mettant ton code (exécuté sur le serveur A), cela me dit : |
Le problème c'est que tu essayes de te connecter au serveur local alors que ton serveur MySQL est sur une autre machine...
Sur quel port tourne le serveur? Tu as essayé de faire un telnet sur ce port?
Marsh Posté le 23-05-2006 à 14:24:19
bon, déjà j'avais pas la ligne bind-address dans mon my.cnf.
J'ai quand même mis bind-adress 0.0.0.0
Cela n'a rien changé.
Sinon ce matin, j'ai téléchargé mysql administrator (sur mon serveur B bien entendu) mais y a rien qui m'aide finalement.
Pour info, dans server information il y a :
Connected to MySQL Server Instance
User : root
Host : localhost
Socket : /var/lib/mysql/mysql.sock
Server Information
MySQL Version : MySQL 4.1.12
Network Name : monordi
IP : 127.0.0.1
Client Information
Version : MySQL Client Version 4.1.12
Network Name : monordi
IP : 127.0.0.1
Operating System : Linux 2.6.12-12mdk
Hardware : .....
Sinon, dans mon code j'ai essayé de changé 192.168.0.2 par 127.0.0.1 sur mon serveur B (où il y a la bdd) et ben cela ne fonctionne pas (même erreur), il n'accepte que localhost.
Marsh Posté le 23-05-2006 à 15:10:34
Mon my.cnf si ca peut t'aider.
Code :
|
Marsh Posté le 23-05-2006 à 15:34:26
Alors là j'hallucine grave, je viens de mettre ton fichier my.conf en changeant juste l'endroit du mysqld.sock qui était dans /var/lib/mysql (j'avais repéré ou était mes fichiers avant).
Et ben c'est magique, vraiment de la magie la. Le fichier mysqld.sock + le fichier mysqld.pid ont tout simplement disparu, introuvable après une recherche.
Je crois que je doit être maudit avec linux moi. (et j'ai vérifier 10 fois avant de sauvegarder mon fichier my.cnf voir si tout était bon).
Euuuu, je fais comment pour les récuperer? Obligé de réinstaller?
Marsh Posté le 23-05-2006 à 15:38:13
C'est /var/lib/mysqld et non /var/lib/mysql
Marsh Posté le 23-05-2006 à 15:49:23
non non c'est bien /var/lib/mysql, bon heureusement, j'avais gardé l'ancien. Avec l'ancien cela remarche.
Je comprend pas pourquoi avec le tien cela ne fonctionne pas, j'ai tout bien vérifié, c'est les bons emplacement, rien à redire.
Bon, j'ai repris quelque truc de ton fichier qu'ils veulent bien marcher, et cela ne change rien (le serveur mysql tourne) au niveau du ptit programme (si j'ose dire) php.
Toujours les mêmes erreurs.
Marsh Posté le 23-05-2006 à 15:52:19
ReplyMarsh Posté le 23-05-2006 à 16:19:57
Par rapport à mon problème principal, rien à signaler dans les logs, sinon pour ton fichier, il trouve pas le language french apparrement c'est tout.
Marsh Posté le 23-05-2006 à 16:37:53
Alors remplace :
Code :
|
Par :
Code :
|
Marsh Posté le 23-05-2006 à 16:45:56
ok c'est bon, ton fichier marche nickel, mais du coup, lorsque j'exécute mon code depuis la machine b (ou il y a la base donc), ben j'ai comme erreur :
Warning: mysql_connect(): Lost connection to MySQL server during query in ...........
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link ressource in............
Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' in......
Warning: mysql_query(): A link to the server could not be established in .....
sachant qu'avant, il n'y avait pas les deux derniers warning.
(Au passage merci de toutes les aides que j'ai déja reçu)
Marsh Posté le 23-05-2006 à 16:46:07
bon ...
1. donne le résultat de la commande suivantes sur les 2 serveurs ( c'est surtout serveur A qui m'intéresse ) :
|
2. as tu activé l'accès TCP/IP pour le serveur mysql ?
cf /etc/sysconfig/mysqld et/ou /etc/my.cnf sur le serveur
3. as tu ajouter correctement les privilèges d'accès avec GRANT pour l'utilisateur root depuis le poste 192.168.0.1 ?
http://dev.mysql.com/doc/refman/4. [...] ccess.html
http://dev.mysql.com/doc/refman/4. [...] users.html
4. as tu un firewall qui tourne sur serveur A et/ou serveur B ?
|
tu devras ouvrir dans ce cas le port 3306/tcp
http://desintegr.free.fr/autre/man [...] ewall.html
Marsh Posté le 23-05-2006 à 16:48:35
Citation : L'utilisateur root à tous les droits depuis tous les serveurs..... |
Même pour du local il doit ouvrir le port ?
Marsh Posté le 23-05-2006 à 16:58:55
tout dépend de l'IP qu'il utilise.
pour 127.0.0.1 ( loopback ), pas la peine.
pour 192.168.0.1 ( même si c'est l'IP de l'ordi local ), peut être. cela dépend de la conf du firewall.
de plus il n'est pas normal que lorsqu'il veut se connecter à un serveur mysql distant, il se retrouve avec une erreur concernant le socket ( /var/lib/mysql/mysql.sock ) qui ne doit concerner que les accès locaux à mysql et non un accès via le réseau ( avec une adresse IP ).
http://dev.mysql.com/doc/refman/4. [...] enied.html
Marsh Posté le 23-05-2006 à 17:22:32
bippppppppp (auto-censure) cela marche.
Euu comment dire, dans /etc/sysconfig/mysqld, je n'avais pas commenté l'interdiction d'accès tcp ip. Voila, je vais me pendre, je suis un boulet.
Maintenant, merci beaucoup, je vais pouvoir rentrer du boulot en étant soulagé.
Merci encore.
Marsh Posté le 23-05-2006 à 17:43:40
mets [résolu] dans le titre stp.
et ajoute aussi en même [mdv 2006] pour quelqu'un qui aurait le même problème et ferait une recherche.
Marsh Posté le 24-05-2006 à 11:40:55
naruto192 a écrit : bippppppppp (auto-censure) cela marche. |
C'est pour ça que je t'avais demandé de faire un telnet 3306 par exemple.
Marsh Posté le 23-05-2006 à 10:20:37
Bonjour à tous. Voila donc mon problème qui me prend sévèrement la tête.
J'ai un serveur A (mandriva 2006 192.168.0.1) avec apache, php-mysql
J'ai un serveur B (mandriva 2006 192.168.0.2) avec mysql, apache, php-mysql
Je veux faire un truc tout simple. Sur mon serveur A, je veux écrire un petit code php qui insère une ligne dans une base de donnée qui est sur le serveur B.
<?php
$db=mysql_connect('192.168.0.2', 'root', 'mdp');
mysql_select_db('mabase', $db);
$sql="insert into matable (champ1, champ2) values ('valeur1', 'valeur2');
mysql_query($sql);
?>
Lorsque j'exécute ce code (qui est monstrueusement simple) sur le serveur A, il me met comme erreur :
Warning: mysql_connect(): Lost connection to MySQL server during query in ...........
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link ressource in............
Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' in......
Warning: mysql_query(): A link to the server could not be established in .....
Lorsque j'exécute ce code sur le serveur B (le serveur où il y a la base), il me met comme erreur :
Warning: mysql_connect(): Lost connection to MySQL server during query in ...........
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link ressource in............
Bien évidemment, si sur le serveur B (où il y a la base donc) je remplace dans mysql_connect l'adresse ip 192.168.0.2 par localhost, le code fonctionne.
L'utilisateur root à tous les droits depuis tous les serveurs.....
J'ai decommenté la ligne qui désactive interdit la connexion via tcp/ip.
Je sais plus trop quoi faire. Pourtant je suis sur qu'il doit y avoir une solution, mais cela fait trois jours que je cherche sans réponse. Je poste donc mon problème ici. J'espère avoir été clair dans mon sujet.
Merci d'avance pour ceux qui m'aideront.
Message édité par naruto192 le 24-05-2006 à 08:49:53