Creé usuario user@'%'
con password 'password
. Pero no puedo conectarme con:
mysql_connect('localhost:3306', 'user', 'password');
Cuando creé el usuario user@'localhost'
, pude conectarme. ¿Por qué? ¿No significa '%' de CUALQUIER host?
mysql
remote-access
usuario2333586
fuente
fuente
Respuestas:
Para conectarse de forma remota, debe tener MySQL enlazar el puerto 3306 a la dirección IP de su máquina en my.cnf. Luego debe haber creado el usuario en localhost y '%' comodín y otorgar permisos en todos los DB como tales . Vea abajo:
my.cnf (my.ini en windows)
luego
Luego
Dependiendo de su sistema operativo, es posible que deba abrir el puerto 3306 para permitir conexiones remotas.
fuente
mysql.default_port = <private instance port>
mi php.ini y luego lo usé127.0.0.1
para mi nombre de host dbSiga las instrucciones (los pasos 1 a 3 no son necesarios en Windows):
Encuentra la configuración de mysql para editar:
Busque
bind-address=127.0.0.1
en el cambio de archivo de configuraciónbind-address=0.0.0.0
(puede establecer la dirección de enlace en uno de sus ips de interfaz o, como yo, usar 0.0.0.0)Reinicie el servicio mysql ejecutado en la consola:
service restart mysql
Cree un usuario con una contraseña segura para la conexión remota. Para hacer esto, ejecute el siguiente comando en mysql (si es usuario de Linux para llegar a la consola de mysql, ejecute
mysql
y configure la contraseña para la ejecución de rootmysql -p
):Ahora debe tener un usuario con nombre
user
y contraseñasafe_password
con capacidad de conexión remota.fuente
para que DB es el usuario? mira este ejemplo
así que para volver a su pregunta, el operador "%" significa todas las computadoras en su red.
como muestra Aspesa, también estoy seguro de que tienes que crear o actualizar un usuario. busca a todos tus usuarios de mysql:
tan pronto como configures tu usuario, deberías poder conectarte así:
Espero eso ayude
fuente
code
mysql_connect ('localhost: 3306', 'usuario', 'contraseña');code