Question

Sur Mac OS X 10.6, je suis en mesure de se connecter à mysql en php avec

$mysql = mysql_connect(localhost,user,password)

Cependant, si j'utilise le même système d'exploitation Mac OS X 10.9 (Mavericks), j'obtiens le message d'erreur:

Warning: mysql_connect(): No such file or directory

si j'utilise $mysql = mysql_connect("127.0.0.1",user,password), il fonctionne bien, mais je préfère ne pas faire le changement partout.

J'ai lu sur ce site qu'il y a un problème de socket, mais j'ai déjà présent dans php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

Aucune idée sur comment faire mysql_connect(localhost,user,password) work on 10.9 ?

Autres conseils

ce que vous avez besoin est de modifier les noms d'hôte de fichier, mais je suis un utilisateur de PC, donc je ne peux pas marcher vous que sur mac.En tout cas voici ce que j'ai trouvé et je suppose que c'est le même que votre version de l'OS

Étape 1 – Ouvrez le Terminal.app

Soit par commencez à taper Terminal sur le feu des Projecteurs, ou en allant dans Applications -> Utilitaires -> Terminal.

Étape 2 – Ouvrez le fichier hosts

Ouvrir les hôtes en tapant sur le Terminal que vous avez tout juste d'ouvrir:

1$ sudo nano /private/etc/hosts Tapez votre mot de passe d'utilisateur lors de l' vous y êtes invité.

Étape 3: Modifier le fichier hosts

Le fichier hosts contient certains des commentaires (lignes commençant par le n ° symbole), ainsi que certains mappages de nom d'hôte par défaut (par ex.127.0.0.1 – localhost).source: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/

ce que vous avez besoin est d'écrire une entrée pour 127.0.0.1 - localhost si elle n'y est pas déjà.

Si vous appelez mysql_connect() avec localhost en tant que premier argument PHP essaie de se connecter en utilisant un socket de domaine UNIX au lieu de TCP.

Probablement, il semble pour le mal socket nom et/ou vous mysql n'écoute que sur le protocole TCP.

Vous devriez vérifier vos paramètres mysql (/etc/mysql ?recherche pour socket) et le php mysql.default_socket variable de config.(Le pdo_mysql.default_socket vous mentionne est utilisé lorsque vous vous connectez à l'aide de l'aop.)

Par exemple sur ma debian:

$ grep socket /etc/mysql/my.cnf 
socket          = /var/run/mysqld/mysqld.sock

(Sinon, votre vie serait plus facile si vous utilisez tout type de db de la couche d'abstraction, et de stocker les détails de la connexion qu'une seule fois.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top