Demon en general, et mysql en particulier;) [Unix/C/Knowledge:)] - Divers - Programmation
Marsh Posté le 07-11-2002 à 20:46:14
Bon, je vais tenter de résumer ce que j'avais découvert (cad je me plante peut être ).
PHP utilise la libmysql (sauf si tu compiles avec le support built-in limité, mais bon, passons sur ce point). Pour chaque connection, PHP recoit un joli record, et il est fort probable que la connection au serveur MySQL soit un socket, mais plutot du TCP, de l'UDP pour une base de donnée ce serait du suicide (rapelle toi la principale caractéristique de l'UDP, on s'en fout si ca arrive ou pas!).
Par MultiConnection je suppose que tu veux dire le PConnect. Et bien PHP partage juste son record via sa librairie de gestion mysql (php_mysql ou un truc comme ca), evidemment ca pose des problèmes vu que 2 clients connectés via un PConnect sont considérés comme les mêmes personnes et si tu veux utiliser des transactions ca risque d'être bonbon, enfin bon, c'est rarement le cas, je vois pas pourquoi j'en parle
Au niveau de Apache 1.x/PHP lui même, ce sont des fork (cfr mon topic ou je demande le status pour le 2.x).
Marsh Posté le 07-11-2002 à 20:47:33
ouais, la communication se fait soit par TCP soit par sockets unix il me semble.
Marsh Posté le 07-11-2002 à 20:48:28
soit TCP, soit Socket
si tu mets --skip-networking, ca sera par socket uniquement.
Pour mysql, c'est des threads.
Marsh Posté le 07-11-2002 à 20:50:58
joce a écrit a écrit : Pour mysql, c'est des threads. |
Ah, enfin ca c'etait pas clair ca question, si c'etait du côté Apache ou MySQL que ca l'intéressait
Marsh Posté le 07-11-2002 à 21:02:33
socket et pas TCP -> surment socket UDP alors mais pas RAW
enfait, ce que je voulais savoir c'est si a chaque nouvelle connection a gerer, mysql faisait un fork ou bien un thread
bon je crois que j'ai ma réponse
je vais dév ma base de données donc je me renseigne
Marsh Posté le 07-11-2002 à 21:13:32
"soit TCP, soit Socket", ça veut pas dire grand chose. Une socket c'est un point d'entrée à un protocole de communication. On utilise TCP via une socket.
Si tu accède à ta base de données de manière distante, l'accès se fait via une socket TCP (PF_INET). Par contre je pense que les accès locaux se font via une socket Unix (PF_UNIX). Si tu spécifie "skip-networking" dans le fichier de conf de MySQL, l'accès ne pourra se faire qu'en local.
Update : j'en suis même sûr : "Clients may connect to the MySQL server using TCP/IP Sockets, Unix Sockets (Unix), or Named Pipes (NT)". A noter que mysqladmin t'indique comment est accédée ta base de données (eg. "Localhost via Unix socket" ).
Marsh Posté le 07-11-2002 à 21:46:11
slvn a écrit a écrit : socket et pas TCP -> surment socket UDP alors mais pas RAW |
Mais bon sang, surement pas de l'UDP, tu sais ce que c'est de l'UDP? Tu peux te permettre de perdre 50% des paquets? Pas vraiment pour une base de donnée hein
Marsh Posté le 07-11-2002 à 21:57:44
c toi qu' a pas capté mon Msg
je me demandais ce qu'entendait joce pas
UDP xor socket
UPD, je sais ce que c, donc je me demandais ce qu il voulait dire pas socket tout courd, udp ou raw...
mais en fait, Matafan a surment raison, ca reste du udp, mais restriction a la machine seule! (pas de connection depuis l exterieur!)
Marsh Posté le 07-11-2002 à 21:59:52
slvn a écrit a écrit : mais en fait, Matafan a surment raison, ca reste du udp, mais restriction a la machine seule! (pas de connection depuis l exterieur!) |
Un socket Unix c'est de l'UDP
Marsh Posté le 07-11-2002 à 22:03:32
zion a écrit a écrit : Un socket Unix c'est de l'UDP |
non, je te rassure.
Marsh Posté le 07-11-2002 à 22:17:12
oups, j'ai pas relu mon msg et j'ai dit l'inverse de ce que je voulais dire, c pas udp mais tcp qu'il faut lire,
et ce qu'il faut comprendre c'est que mysql communique par socket tcp : soit en mode : PF_INET, soit PF_UNIX.
Marsh Posté le 07-11-2002 à 22:32:10
Ouais enfin une socket Unix c'est pas trop du TCP, pas plus que de l'UDP... Une socket unix c'est pour faire de la communication inter-process. Rien à voir avec les protocoles reseaux.
Marsh Posté le 08-11-2002 à 00:01:10
mais qu'est ce qu'on vous apprends à l'ISEP (c'est ton projet de fin d'étude ? )
Marsh Posté le 07-11-2002 à 19:23:06
A propos des demons unix et de mysql,
comment la communication apache/php -> mysql se fait :
pas socket je crois, udp il me semble, j'aimerais comfirmation.
le multiconnection est il géré par des thread ou par des fork ? quel est sont les avantages / inconvénient ?!