Mysqld.sock

balbika Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
 balbika -
Bonjour,

quelqu'un pourrait il poster le contenu de son fichier mysqld.sock le fichier est vide chez moi même si je l'ai créer avec les droits 755 et un mysqld_safe n'arrange pas les choses.
Merci

5 réponses

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
En soit le fichier mysqld.sock ne contient rien. C'est juste que sous linux, une socket est modélisée par un fichier. Pour simplifier, écrire ou lire (au même titre qu'un fichier ordinaire) dedans a un impact réseau (envoyer ou écouter du trafic). Dans le cas de mysqld, écrire dans ce fichier revient à envoyer des données au démon mysqld.

Plus généralement, sous linux beaucoup de choses modélisées par des fichiers (qui ne sont en réalité pas des données stockées sur un disque). Notamment, tu retrouves cette approche dans /dev pour modéliser des opérations avec des périphériques, des générateurs aléatoires etc...

En aucun cas tu ne dois changer les droits sous linux, sauf s'ils concernent tes documents personnels. Les permissions sont définies de sorte à avoir un système sûr. Relâcher des droits sur des parties propre au système (en l'occurrence mysql) revient souvent à ouvrir un trou de sécurité.

A priori mysql s'installe via ton gestionnaire de paquets et se lance ensuite avec une commande du genre "/etc/init.d/mysql start" (voir contenu de /etc/init.d, le nom du script peut ne pas être "mysql"), ou pour les distributions récentes "service mysql start".

Ce script lance en arrière plan mysqld :

ps aux | grep mysql
netstat -ntlp


Une fois lancé, tu dois pouvoir te connecter à la base avec la commande suivante :

mysql -u root -p


Bonne chance
2
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Selon les distributions le fichier ".pid" et ".sock" peuvent être à différents endroits. Sous debian par exemple il est dans /var/run, pour fedora (qui range je trouve tout un peu n'importe comment :p) ça ne me choque pas qu'il soit dans /var/lib. Note que le nom de ces deux fichiers est paramétré dans /etc/mysql/my.cnf et peut donc varier au niveau du nom et du répertoire qui les contient.

Par contre je n'ai pas compris le rapport entre ce que tu fais (chmod ou de isql) et le lien que tu as indiqué.

Par ailleurs pour isql et le driver unix odbc, à mon avis il suffit d'installer le bon paquet ("unixodbc" sous debian) et l'affaire est dans le sac. Même principe pour mysql (paquet "mysql-server" sous debian). Normalement, les paquets fournis par ta distribution, s'ils sont bien faits, doivent tout installer avec une configuration de base qui marche correctement dans la plupart des cas et que tu peux ensuite adapter à tes besoin.

Je ne peux pas t'indiquer le nom de ces paquets sous redhat vu que je n'utilise pas cette distribution, mais j'imagine qu'on peut les trouver et les installer via up2date. Si tu as possibilité d'utiliser une debian au lieu de ta redhat, ce sera plus facile pour moi de te guider.

Bonne chance
1
balbika
 
Merci

En effet tout dépend de la distribution. pour mon cas je suis obligée d'utiliser redhat.
Maisj'ai réussit à contourner le probléme j'ai juste utiliser mysl.sock à la place de mysqld.sock et ca a marcher.
j'ai réussi à faire mes tests. et lancer mon appli qui tourne parfaitement
0
balbika Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour cette réponse rapide !!!
j'ai vu sur un forum qu'il fallait changer les droits du fichier pour que mysqld_safe puisse le modifier. mais sinon j'arrive bien à me connecter à la base avec

mysql -u root -p

le problème c'est que j'ai créer un dsn pour une base et j'arrive pas à y accéder

isql dsn
me renvoi une erreur could not sqlconnet

il me faudrait mysqld.sock pour y parvenir.
Merci
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Je ne sais pas à quoi sert la commande isql ni ce qu'est un dsn. Si en tout cas la commande sql marche, déjà le serveur marche et je ne vois pas pour quelles raisons tu devrais charcuter les droits de mysql.sock. Peux-tu me dire sur quel lien tu te bases ?

A priori vu que mysqld (le serveur) est lancé (vu que tu as pu te connecter avec la commande mysql), c'est probablement qu'il est rangé à un endroit autre que celui ou tu cherches. Par exemple sous debian ce fichier est créé dans /var/run/mysql. En tout cas tu n'as aucune raison de le bidouiller, car ce fichier représente un socket et est créé/écrasé à chaque fois que tu lances mysqld.

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
balbika Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
je me suis basée sur ce forum http://www.linuxforums.org/forum/servers/1451-what-mysql-sock-file.html

Et oui mysqld.sock devrait se trouver dans le répertoire /var/run/mysqld mais il n'y est pas je retrouve juste le mysqld.pid dans ce fichier.

Toutefois j'ai réussi à contourner le probléme juste en ignorant le mysqld.sock et en utilisant mysql.sock qui se trouve dans /var/lib/mysql à la place.

Pour la commande isql je l'utilise pour tester si j'arrive à me connecter à ma base avec un driver. j'ai installer unixODBC pour l'occas et je voulais le tester avant de lancer mon application.

Merci pour tes conseils.
0