PHP/mysql nécessitant 127.0.0.1 sur OS X Mavericks
-
21-12-2019 - |
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.)