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?
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.
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
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):
-
Encuentra la configuración de mysql para editar:
/etc/mysql/my.cnf (Mysql 5.5)
/ etc / mysql / conf.d / mysql.cnf (Mysql 5.6+)
Find
bind-address=127.0.0.1
in config file changebind-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)Reiniciar el servicio mysql ejecutado en la consola:
service restart mysql
-
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 rootmysql -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.
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