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?
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?
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)
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
luego
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
Luego
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
flush privileges;
Dependiendo de su sistema operativo, es posible que deba abrir el puerto 3306 para permitir conexiones remotas.
mysql.default_port = <private instance port>
mi php.ini y luego lo usé 127.0.0.1
para mi nombre de host db
Siga las instrucciones (los pasos 1 a 3 no son necesarios en Windows):
Encuentra la configuración de mysql para editar:
/etc/mysql/my.cnf (Mysql 5.5)
/etc/mysql/conf.d/mysql.cnf (Mysql 5.6+)
Busque bind-address=127.0.0.1
en el cambio de archivo de configuración bind-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 root mysql -p
):
GRANT ALL PRIVILEGES
ON *.* TO 'remote'@'%'
IDENTIFIED BY 'safe_password'
WITH GRANT OPTION;`
Ahora debe tener un usuario con nombre user
y contraseña safe_password
con capacidad de conexión remota.
para que DB es el usuario? mira este ejemplo
mysql> create database databasename;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on databasename.* to cmsuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
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:
SELECT user,password,host FROM user;
tan pronto como configures tu usuario, deberías poder conectarte así:
mysql -h localhost -u gmeier -p
Espero eso ayude
code
mysql_connect ('localhost: 3306', 'usuario', 'contraseña'); code