Posez votre question Signaler

Mysql socket

Olivier - Dernière réponse le 8 juil. 2010 à 23:29
Bonjour,

j'ai installé php,mysql et apache2. Tous fonctionne sauf lors des script php faisant appel au mysql j'ai une erreure lors de la connection qui me dit:
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/' (13)


Pourtant mon socket mysql se trouve bien à cette endroit. Quelqu'un peut-il m'aider?

merci d'avance
Lire la suite 

Mysql socket »

12 réponses
Réponse
+3
moins plus
Olivier,

Profites-en aussi pour nous dire quelle est ta distribution Linux... et puis donnes nous le résultat de

ps axl | grep mysql

et

mysql -p

Dans une console sous root, histoire de vérifier que ton démon mysql est bien lancé.


Dal
Ajouter un commentaire
Réponse
+0
moins plus
il y a pas mal de sujets sur ce problème sur google, dis-nous les solutions que tu as déjà essayées afin qu'on ne répète pas ce que tu as déjà écrémé
Ajouter un commentaire
Réponse
+0
moins plus
J'utilise linux mandrake 10.2 edition limited en dvd, sinon je n'ai pas encore essayer tes commandes mais je suis sur que mysql est lancé car j'arrive à voir les tables mysql par la console mais je vais essayer les commandes.
Ajouter un commentaire
Réponse
+0
moins plus
[root@localhost ~]# ps axl | grep mysql
4     0 17052     1  24   0   2576  1352 wait   S    pts/1      0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.pid
4   501 17078 17052  18   0 360984 15052 select Sl   pts/1      0:00 /usr/local/mysql//libexec/mysqld --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/localhost.pid --skip-locking --port=3306 --socket=/usr/local/mysql/tmp/mysql.sock
0     0 17088 17015  19   0   1936   732 -      R+   pts/1      0:00 grep mysql


[root@localhost ~]# /usr/local/mysql/bin/mysql -u CrooOl -p mysql
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.25-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


voila le résultat des commandes
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

A tout hasard, je sais que j'ai eu ce probléme, mais je ne sais plus comment ça c'est résolu, tu peux toujours tenter dans /etc/php.ini de mettre à la ligne:
mysql.default_socket
mysql.default_socket =mysql.sock

Il se peut que php cherche un fichier mysql.socket par defaut.

Olivier - 22 juil. 2005 à 15:26
oui c'est bien sa le prob php prend mysql.socket par défault mais même avec mysql.sock dans php.ini sa ne change rien j'ai tjs dans mysql de phpinfo() la ligne
MYSQL_SOCKET 	/usr/local/mysql/tmp/mysql.socket

et c'est
MYSQL_SOCKET 	/usr/local/mysql/tmp/mysql.sock
qu'il faudrait. Comment faire alors que lors de la compilation j'ai déja mis
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock
Ajouter un commentaire
Réponse
+0
moins plus
ton firewall bloquerait pas le 3306 des fois?
Olivier - 22 juil. 2005 à 15:14
j'ai pas de firewall sur le réseau local donc je ne pense pas que ce serait sa et sur le routeur le port est ouvert pour le serveur actuel
Ajouter un commentaire
Réponse
+0
moins plus
J'avance mais je ne suis pas encore au finale j'ai réussi à avoir les même socket dans php et mysql en changant dans my.cnf mais sa ne va tjs pas lors des connection mysql par php :-( .
Ajouter un commentaire
Réponse
+0
moins plus
Salut Olivier,

Donc il semble bien que ton serveur MySQL soit lancé.

Dans son paramétrage mysql permet de restreindre l'accès aux bases de données (y compris à la connexion) à certains utilisateurs seulement ou à certains hôtes seulement. As-tu spécifié des restrictions particulières ? Ton Apache est-il sur le même hôte que le serveur MySQL ?

Voir http://www.databasejournal.com/features/mysql/article.php/3311731

et les permissions définies dans les tables "user", "db", et "host".


Dal

PS : sur une autre piste... a tout hasard.. peux tu nous poster le résultat de
ls -l /usr/local/mysql/tmp/mysql.sock*
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Pour ce problème, il suffit de trouver le chemin sur lequel se trouve le fichier mysql.sock
Fichier trouveé dans "/usr/local/mysql/". Ensuite, vous créez un lien sur le répertoire "/tmp" avec la commande suivante:
$ ln -s /usr/local/mysql/mysql.sock /tmp
Et ça marche, vous avez plus à lancer la commande "mysql -uroot -p<password> --socket=/usr/local/mysql/mysql.sock";
vous lancerez directement la commande "mysql -uroot -p<password>"

Cordialement
Ajouter un commentaire
Réponse
+0
moins plus
hum il ya un probleme MySQL a répondu:?

#1045 - Access denied for user 'root'@'localhost' (using password: NO)
pourtant , cand je vais dans la console il est indiquer que le mot de pass est le bon que faire :s?
Ajouter un commentaire
Ce document intitulé « mysql socket » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook