Tengo un extraño problema en PHP MySQL:MySQL trabajando con 127.0.0.1 pero no trabajando con localhost?
php conecta con 127.0.0.1
pero no con localhost
.
¿Cómo resolver este problema?
Tengo un extraño problema en PHP MySQL:MySQL trabajando con 127.0.0.1 pero no trabajando con localhost?
php conecta con 127.0.0.1
pero no con localhost
.
¿Cómo resolver este problema?
localhost debe definirse en su archivo de hosts, que es por defecto en Windows y en la mayoría de los sistemas operativos.
Comprobar el siguiente archivo de texto y ver lo que pasa:
C:\WINDOWS\system32\drivers\etc\hosts
Tenga en cuenta "hosts" es el archivo, sin extensión, no es una carpeta. Este archivo debería estar prácticamente vacío, si ve entradas, su bloqueador de correo no deseado/AV ha agregado un montón de entradas que apuntan a 127.0.0.1 o malware desagradable ha escrito basura allí, a pesar de que las entradas más nuevas están por debajo de las anteriores. Localhost debe ser la primera entrada en ese archivo.
Ese archivo de hosts puede tener :: 1 para localhost. Normalmente desactivo todo lo que no esté relacionado con IP4 para que las cosas funcionen. –
Probar:
IE -> Herramientas -> Opciones -> Conexión -> Configuración de LAN Compruebe proxy para direcciones locales
También eche un vistazo dentro de la base de datos MySQL que define el usuario privilegios de acceso. Puede definir desde qué hosts de origen puede conectarse un usuario determinado. Puede consultar para más detalles http://dev.mysql.com/doc/refman/5.1/en/connection-access.html
IIRC, me he encontrado con este mismo problema antes. Le di acceso al usuario a través de "127.0.0.1" específicamente, pero no a través de "localhost". –
Prueba ping localhost
en una línea de comandos, puede ser resuelto a ::1:
el equivalente IP6 a 127.0.0.1
solucionarlo, añadir (o descomentar) de la línea:
127.0.0.1 localhost
en C:\WINDOWS\system32\drivers\etc\hosts
Esto lo hizo por mí –
recuerdo que siendo una característica de muchos años y documentada de MySQL en Windows. Algo sobre la forma en que funcionan los enchufes locales o algo así.
¿Localhost se está resolviendo en la dirección IPv6, a diferencia del IPv4, y MySQL no está escuchando en la dirección v4?
La solución es hacer que localhost resuelva en la dirección v4, O hacer que MySQL escuche en la dirección v6.
Si MySQL se conecta a 127.0.0.1 lo hace a través de TCP/IP, mientras que si se conecta a localhost lo hace a través de un socket.
¿Está buscando PHP en el lugar correcto para mysql.sock? Asegúrese de que los php.ini y my.conf tienen ubicaciones coincidentes
para Mac, aquí está la solución:
Conectar a MySQL usando localhost 127.0.0.1 en lugar de en un MAC. Hace mucho tiempo que me estoy conectando a MySQL en mi plataforma de desarrollo con 127.0.0.1 porque por alguna razón, localhost no funcionaba. Resulta que es porque 127.0.0.1 usa TCP/IP y localhost usa sockets. El archivo php.ini apunta al lugar incorrecto para mysql.sock, así que todo lo que tienes que hacer es cambiarlo, reiniciar apache y listo.
Open php.ini: /private/etc/php.ini
Find the following line: mysql.default_socket = /var/mysql/mysql.sock
Replace with: mysql.default_socket = /tmp/mysql.sock
Restart apache: apachectl restart
Nota: Dependiendo de su configuración, es posible que también tenga que actualizar estas líneas en su php.ini:
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
Nota: Si usted no tiene un archivo php.ini, es necesario copiar el valor predeterminado proporcionado llamada php.ini.default
sudo cp /private/etc/php.ini.default /private/etc/php.ini
través http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/
Si usted no está en Windows también prueba si mysql se está conectando a través de un socket, localmente normalmente lo hace.
TCP Fuerza con el cliente mysql
mysql -usomeone -p --protocol=TCP
vs zócalo (por defecto en Linux)
mysql -usomeone -p
mysql -usomeone -p --protocol=socket
Este último no funcionó para mi @air [email protected]
: He editado su pregunta, puede retroceder en caso de que no esté de acuerdo. –