Domanda

su Mac OS X 10.6, sono in grado di connettermi a MySQL in PHP con

$mysql = mysql_connect(localhost,user,password)
.

Tuttavia, se uso lo stesso in Mac OS X 10.9 (Mavericks), ottengo il messaggio di errore:

Warning: mysql_connect(): No such file or directory
.

Se utilizzo $mysql = mysql_connect("127.0.0.1",user,password), funziona bene, ma preferirei non rendere il cambiamento ovunque.

Ho letto su questo sito che c'è un problema socket, ma ho già questo in php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

Qualche idea su come rendere mysql_connect(localhost,user,password) work on 10.9?

Altri suggerimenti

Quello di cui hai bisogno è modificare il file hostnames, ma sono un utente del PC, quindi non posso camminare con quello su Mac. Ad ogni modo qui è quello che ho trovato e suppongo che sia lo stesso della tua versione del sistema operativo

.

Step 1 - Apri il terminale.app

Avvia il terminale di digitazione sul riflettore, o entrando in Applicazioni -> Utilità -> Terminale.

Step 2 - Apri il file host

Aprire gli host digitando il terminale che hai appena aperto:

1 $ sudo nano / privato / etc / host Digita la password utente quando richiesto.

Step 3 - Modifica il file host

Il file host contiene alcuni commenti (linee che iniziano con il # Symbol), così come alcuni mapping di nomi host predefiniti (ad esempio 127.0.0.1 - localhost). Fonte: http://decoding.wordpress.com/2009/04/06/How-to-edit-the-hosts-file-in-mac-os-x-leopard/

Quello di cui hai bisogno è scrivere una voce per 127.0.0.1 - localhost Se non è già lì.

Se si chiama mysql_connect() con localhost come primo argomento PHP tenta di connettersi utilizzando una presa di dominio UNIX anziché TCP.

Probabilmente cerca il nome di socket errato e / o You MySQL ascolta solo il TCP.

Dovresti controllare le impostazioni MySQL (/ etc / mysql? Ricerca per presa) e la variabile di configurazione di PHP mysql.default_socket.(I pdo_mysql.default_socket Le menzioni vengono utilizzate quando si collega usando PDO.)

Ad esempio sul mio Debian:

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

(Altrimenti la tua vita sarebbe più facile se usi qualsiasi tipo di strato di astrazione DB e memorizzando i dettagli della connessione solo una volta.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top