una servidor remoto remota para habilitar datos configurar conexion conectarse conectar acceso mysql connection grant

remota - ¿Cómo otorgar permisos de acceso remoto al servidor mysql para el usuario?



configurar phpmyadmin para conexion remota (9)

Abra el archivo /etc/mysql/mysql.conf.d/mysqld.cnf y comente la siguiente línea.

bind-address = 127.0.0.1

Si hago SHOW GRANTS en mi base de datos mysql obtengo

GRANT ALL PRIVILEGES ON *.* TO ''root''@''localhost'' IDENTIFIED BY PASSWORD ''some_characters'' WITH GRANT OPTION

Si no me equivoco, root@localhost significa que el usuario root puede acceder al servidor solo desde localhost . ¿Cómo le digo a MySQL que conceda a root el permiso para acceder a este servidor mysql desde cualquier otra máquina (en la misma red) también?


Debe realizar algunos pasos para asegurarse de que primero se puede acceder desde el exterior a mysql y luego al usuario raíz:

  1. Deshabilitar skip-networking de my.cnf en my.cnf (es decir: /etc/mysql/my.cnf )

  2. Verifique el valor de bind-address en my.cnf , si está configurado en 127.0.0.1 , puede cambiarlo a 0.0.0.0 para permitir el acceso desde todas las direcciones IP o desde cualquier IP desde la que desee conectarse.

  3. Conceda acceso remoto al usuario raíz desde cualquier ip (o especifique su ip en lugar de % )

    GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' IDENTIFIED BY ''your_root_password'' WITH GRANT OPTION; FLUSH PRIVILEGES;`

  4. Reinicie el servicio de mysql:

    sudo service mysql restart


Dos pasos:

  1. configurar usuario con comodín:
    create user ''root''@''%'' identified by ''some_characters''; GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' IDENTIFIED BY PASSWORD ''some_characters'' WITH GRANT OPTION

  2. vim /etc/my.cnf
    agregue lo siguiente:
    bind-address=0.0.0.0

reinicie el servidor, no debería tener ningún problema para conectarse a él.


En mi caso, estaba intentando conectarme a un servidor mysql remoto en el sistema operativo Cent. Después de pasar por muchas soluciones (otorgando todos los privilegios, eliminando enlaces de IP, habilitando la red), el problema todavía no se solucionaba.

Resultó que, mientras investigaba varias soluciones, me encontré con iptables, lo que me hizo darme cuenta de que el puerto 3306 de mysql no aceptaba conexiones.

Aquí hay una pequeña nota sobre cómo revisé y resolví este problema.

  • Verificando si el puerto está aceptando conexiones:

telnet (mysql server ip) [portNo]

-Agregar regla de tabla ip para permitir conexiones en el puerto:

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

-No recomendaría esto para el entorno de producción, pero si sus iptables no están configuradas correctamente, agregar las reglas podría no resolver el problema. En ese caso, se debe hacer lo siguiente:

service iptables stop

Espero que esto ayude.


Esas concesiones SQL que los demás están compartiendo hacen el trabajo. Si aún no puede acceder a la base de datos, es posible que solo tenga una restricción de firewall para el puerto. Depende de su tipo de servidor (y de los enrutadores intermedios) sobre cómo abrir la conexión. Abra el puerto TCP 3306 entrante y asígnele una regla de acceso similar para las máquinas externas (todo / subred / IP única / etc.).


Esto concede acceso de *.example.com con la misma contraseña desde cualquier máquina en *.example.com :

GRANT ALL PRIVILEGES ON *.* TO ''root''@''%.example.com'' IDENTIFIED BY ''some_characters'' WITH GRANT OPTION; FLUSH PRIVILEGES;

Si la resolución del nombre no va a funcionar, también puede otorgar acceso por IP o subred:

GRANT ALL PRIVILEGES ON *.* TO ''root''@''192.168.1.%''     IDENTIFIED BY ''some_characters''      WITH GRANT OPTION; FLUSH PRIVILEGES;

GRANT sintaxis de MySQL GRANT


Esto funcionó para mí. Pero había un problema extraño: incluso yo primero probé aquellos que no afectaron. Actualicé la página phpmyadmin y conseguí que funcionara de alguna manera.

Si necesita acceso a local-xampp-mysql. Puede ir a xampp-shell -> abrir símbolo del sistema.

Luego mysql -uroot -p --port = 3306 o mysql -uroot -p (si hay una contraseña establecida). Después de eso, puede otorgar esos accesos desde la página de shell de mysql (también puede trabajar desde localhost / phpmyadmin).

Solo agregue estos si alguien encuentra este tema y tiene problemas para principiantes.


Tratar:

GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' IDENTIFIED BY ''Pa55w0rd'' WITH GRANT OPTION;


GRANT ALL PRIVILEGES ON *.* TO ''root''@''%'' IDENTIFIED BY ''YOUR_PASS'' WITH GRANT OPTION; FLUSH PRIVILEGES;

*.* = DB.TABLE puede restringir al usuario a una base de datos específica y una tabla específica.

''root''@''%'' puede cambiar la raíz con cualquier usuario que haya creado y% es para permitir toda la IP. Puede restringirlo cambiando% .168.1.1 etc. también.