Pregunta

En Mac OS X 10.6, puedo conectarme a mysql en php con

$mysql = mysql_connect(localhost,user,password)

Sin embargo, si uso lo mismo en Mac OS X 10.9 (Mavericks), aparece el mensaje de error:

Warning: mysql_connect(): No such file or directory

si uso $mysql = mysql_connect("127.0.0.1",user,password), funciona bien, pero prefiero no hacer el cambio en todas partes.

Leí en este sitio que hay un problema con el socket, pero ya lo tengo en php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

Alguna idea de como hacer mysql_connect(localhost,user,password) work on 10.9 ?

Otros consejos

Lo que necesita es editar el archivo de nombres de host, pero soy un usuario de PC, así que no puedo caminar con eso en Mac. De todos modos, aquí es lo que encontré y supongo que es lo mismo que la versión de su sistema operativo

Paso 1 - Abra el terminal.app

ya sea al comenzar a escribir terminal en el centro de atención, o al entrar en Aplicaciones -> Utilidades -> Terminal.

Paso 2 - Abra el archivo Hosts

Abra los hosts escribiendo en el terminal que acaba de abrir:

1 $ sudo nano / privado / etc / hosts Escriba su contraseña de usuario cuando solicitado.

Paso 3 - Edite el archivo Hosts

El archivo de hosts contiene algunos comentarios (líneas que comienzan con el # símbolo), así como algunas asignaciones predeterminadas de nombre de host (por ejemplo, 127.0.0.1 - localhost). Fuente: http://decoding.wordpress.com/2009/04/06/HOW-O-Edit-the-hosts-file-in-mac-os-x-leopard/

Lo que necesita es escribir una entrada para 127.0.0.1 - localhost Si aún no está allí.

si llamas mysql_connect() con localhost Como primer argumento, PHP intenta conectarse utilizando un socket de dominio UNIX en lugar de TCP.

Probablemente busca un nombre de socket incorrecto y/o MySQL solo escucha en TCP.

Deberías verificar tu configuración de MySQL (/etc/mysql?buscar socket) y el php mysql.default_socket variable de configuración.(El pdo_mysql.default_socket lo que mencionas se usa cuando te conectas usando pdo.)

Por ejemplo en mi Debian:

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

(De lo contrario, su vida sería más fácil si utiliza cualquier tipo de capa de abstracción de base de datos y almacena los detalles de la conexión solo una vez).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top