Mysql añadiendo usuario para acceso remoto


He creado el usuario user@'%' con password 'password. Pero no puedo conectar con:

mysql_connect('localhost:3306', 'user', 'password');

Cuando creé user user@'localhost', pude conectarme. ¿Por qué? ¿'%'no significa de NINGÚN host?

Author: Saty, 2013-04-30

3 answers

Para conectarse de forma remota, debe tener el puerto MySQL bind 3306 a la dirección IP de su máquina en my.cnf. Luego debe haber creado el usuario tanto en localhost como en el comodín ' % ' y conceder permisos a todas las bases de datos como tales . Véase a continuación:

My.cnf (my.ini en windows)

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Entonces

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

Entonces

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

Dependiendo de su sistema operativo, es posible que tenga que abrir el puerto 3306 para permitir conexiones remotas.

 287
Author: apesa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-31 10:13:12

¿Para qué 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 todos los equipos en su red.

Como muestra aspesa también estoy seguro de que tienes que crear o actualizar un usuario. busque todos sus usuarios de mysql:

SELECT user,password,host FROM user;

Tan pronto como haya configurado su usuario, debería poder conectarse de la siguiente manera:

mysql -h localhost -u gmeier -p

Espero que ayude

 10
Author: caramba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-29 21:21:12

Siga las instrucciones (los pasos 1 a 3 no son necesarios en windows):

  1. Encuentra la configuración de mysql para editar:

    /etc/mysql/my.cnf (Mysql 5.5)

    / etc / mysql / conf.d / mysql.cnf (Mysql 5.6+)

  2. Find bind-address=127.0.0.1 in config file change bind-address=0.0.0.0 (puede establecer la dirección de enlace a una de sus ips de interfaz o como yo use 0.0.0.0)

  3. Reiniciar el servicio mysql ejecutado en la consola: service restart mysql

  4. Crear un usuario con una caja fuerte contraseña para conexión remota. Para hacer esto ejecute el siguiente comando en mysql (si es usuario de Linux para llegar a mysql console run mysql y si establece 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 debería tener un usuario con nombre de user y contraseña de safe_password con capacidad de conexión remota.

 9
Author: MSS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-20 07:53:32