una servidor remoto remota permitir para otra habilitar desde datos cómo configurar conexion conectarse conectar acceso acceder mysql grant

servidor - cómo permitir el acceso remoto a una base de datos mysql



otorgar acceso remoto a la base de datos MySQL desde cualquier dirección IP (16)

Soy consciente de este comando:

GRANT ALL PRIVILEGES ON database.* TO ''user''@''yourremotehost'' IDENTIFIED BY ''newpassword'';

Pero entonces solo me permite otorgar una dirección IP particular para acceder a esta base de datos MySQL remota. ¿Qué sucede si lo deseo para que cualquier host remoto pueda acceder a esta base de datos MySQL? ¿Cómo puedo hacer eso? Básicamente, estoy haciendo pública esta base de datos para que todos puedan acceder a ella.


Editar archivo:

/etc/mysql/percona-server.cnf

Agregue el siguiente código en el archivo.

[mysqld] bind-address = 0.0.0.0

Crear usuario para acceso remoto.

$ mysql -u root -p mysql> GRANT ALL ON *.* to snippetbucketdotcom@''%'' IDENTIFIED BY ''tejastank''; mysql> FLUSH PRIVILEGES; mysql> exit

Todo el servidor de Linux funciona,

Para MSWin c: / Buscar ubicación de instalación / ruta de archivo


Ejecuta lo siguiente:

$ mysql -u root -p mysql> GRANT ALL ON *.* to root@''ipaddress'' IDENTIFIED BY ''mysql root password''; mysql> FLUSH PRIVILEGES; mysql> exit

Luego intente una conexión desde la dirección IP que especificó:

mysql -h address-of-remove-server -u root -p

Deberías poder conectarte.


En paneles de sitios web como cPanel, puede agregar un solo % (signo de porcentaje) en los nombres de host permitidos para acceder a su base de datos MySQL.

Al agregar un solo % , puede acceder a su base de datos desde cualquier IP o sitio web, incluso desde aplicaciones de escritorio.


Habilitar acceso remoto (Otorgar) Inicio / Tutoriales / Mysql / Habilitar acceso remoto (Otorgar) Si intenta conectarse a su servidor mysql desde una máquina remota y encuentra un error como el siguiente, este artículo es para usted.

ERROR 1130 (HY000): el host ''1.2.3.4'' no tiene permiso para conectarse a este servidor MySQL

Cambiar la configuración de mysql

Comience con la edición del archivo de configuración mysql

vim /etc/mysql/my.cnf

Comenta las siguientes líneas.

#bind-address = 127.0.0.1 #skip-networking

Si no encuentra la línea de omisión de redes, agréguela y coméntela.

Reinicie el servidor mysql.

~ /etc/init.d/mysql restart

Cambiar privilegio GRANT

Es posible que se sorprenda al ver que, incluso después del cambio anterior, no obtiene acceso remoto ni obtiene acceso a todas las bases de datos, pero no puede hacerlo.

De forma predeterminada, el nombre de usuario y la contraseña de mysql que está utilizando tiene permiso para acceder a mysql-server localmente. Así que necesito actualizar el privilegio.

Ejecute un comando como el de abajo para acceder desde todas las máquinas. (Reemplace USERNAME y PASSWORD por sus credenciales).

mysql> GRANT ALL PRIVILEGES ON *.* TO ''USERNAME''@''%'' IDENTIFIED BY ''PASSWORD'' WITH GRANT OPTION;

Ejecute un comando como el siguiente para dar acceso desde una IP específica. (Reemplace USERNAME y PASSWORD por sus credenciales).

mysql> GRANT ALL PRIVILEGES ON *.* TO ''USERNAME''@''1.2.3.4'' IDENTIFIED BY ''PASSWORD'' WITH GRANT OPTION;

Puede reemplazar 1.2.3.4 con su IP. Puede ejecutar el comando anterior muchas veces para conceder acceso GRANT desde múltiples IP.

También puede especificar un USERNAME & PASSWORD separado para el acceso remoto.

Puede comprobar el resultado final por:

SELECT * from information_schema.user_privileges where grantee like "''USERNAME''%";

Por último, también puede ser necesario ejecutar:

mysql> FLUSH PRIVILEGES;

Conexión de prueba

Desde el terminal / línea de comando:

mysql -h HOST -u USERNAME -pPASSWORD

Si obtienes un shell mysql, no olvides ejecutar las bases de datos show; para comprobar si tiene privilegios adecuados de máquinas remotas.

Bonus-Tip: Revocar acceso

Si concede acceso accidentalmente a un usuario, es mejor tener a mano la opción de revocación.

Lo siguiente revocará todas las opciones para USERNAME de todas las máquinas:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ''USERNAME''@''%''; Following will revoke all options for USERNAME from particular IP: mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ''USERNAME''@''1.2.3.4''; Its better to check information_schema.user_privileges table after running REVOKE command.

Si ve privilegios de USAGE después de ejecutar el comando REVOKE, está bien. Es tan bueno como ningún privilegio en absoluto. No estoy seguro de si puede ser revocado.


Necesitas cambiar el archivo de configuración de mysql:

Comience con la edición del archivo de configuración de mysql

vim /etc/mysql/my.cnf

añadir:

bind-address = 0.0.0.0


Para cualquier persona que se haya ocupado de esto, aquí es cómo conseguí los privilegios, espero que ayude a alguien.

GRANT ALL ON yourdatabasename.* TO root@''%'' IDENTIFIED BY ''yourRootPassword'';

Como se indica, % es un comodín y esto permitirá que cualquier dirección IP se conecte a su base de datos. La suposición que hago aquí es que cuando te conectes, tendrás un usuario llamado root (que es el predeterminado, sin embargo). Ingresa la contraseña de root y listo. Tenga en cuenta que no tengo comillas simples ( '' ) alrededor de la raíz del usuario.


Por ejemplo en mi CentOS

sudo gedit /etc/mysql/my.cnf

comenta las siguientes líneas

# bind-address = 127.0.0.1

entonces

servicio de sudo mysqld reinicio


Puede deshabilitar toda la seguridad editando /etc/my.cnf:

skip-grant-tables


Puedes evitar el problema de MariaDB a través de este comando :

Nota:

GRANT ALL ON *.* to root@''%'' IDENTIFIED BY ''mysql root password'';

% es un comodín. En este caso, se refiere a todas las direcciones IP.


Se requieren cambios en el archivo de configuración para habilitar las conexiones a través de localhost.

Para conectarse a través de direcciones IP remotas, inicie sesión como usuario "root" y ejecute las siguientes consultas en mysql.

CREATE USER ''username''@''localhost'' IDENTIFIED BY ''password''; GRANT ALL PRIVILEGES ON *.* TO ''username''@''localhost'' WITH GRANT OPTION; CREATE USER ''username''@''%'' IDENTIFIED BY ''password''; GRANT ALL PRIVILEGES ON *.* TO ''username''@''%'' WITH GRANT OPTION; FLUSH PRIVILEGES;

Esto creará un nuevo usuario al que se puede acceder en localhost y desde direcciones IP remotas.

Comente también la línea de abajo de su archivo my.cnf ubicado en /etc/mysql/my.cnf

bind-address = 127.0.0.1

Reinicie su mysql usando

sudo service mysql restart

Ahora deberías poder conectarte de forma remota a tu mysql.


Solo crea el usuario a alguna base de datos como

GRANT ALL PRIVILEGES ON <database_name>.* TO ''<username>''@''%'' IDENTIFIED BY ''<password>''

Luego ve a

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf y cambie la línea bind-address = 127.0.0.1 a bind-address = 0.0.0.0

Después de eso, puede conectarse a esa base de datos desde cualquier IP.


Suponiendo que se complete el paso anterior y que se pueda acceder de forma remota al puerto 3306 de MySQL; No olvide enlazar la dirección IP pública en el archivo de configuración de mysql.

Por ejemplo en mi servidor ubuntu:

#nano /etc/mysql/my.cnf

En el archivo, busque el bloque de sección [mysqld] y agregue la nueva dirección de enlace, en este ejemplo es 192.168.0.116. Se vería algo como esto

...... ..... # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 bind-address = 192.168.0.116 ..... ......

puede eliminar el enlace localhost (127.0.0.1) si lo desea, pero luego debe proporcionar una dirección IP para acceder al servidor en la máquina local.

Luego, el último paso es reiniciar el servidor MySql (en ubuntu)

stop mysql start mysql

o #/etc/init.d/mysql restart para otros sistemas

Ahora se puede acceder a la base de datos MySQL de forma remota mediante:

mysql -u username -h 192.168.0.116 -p


Utilice este comando:

GRANT ALL ON yourdatabasename.* TO root@''%'' IDENTIFIED BY ''yourRootPassword'';

Entonces:

FLUSH PRIVILEGES;

Luego comente la siguiente línea en el archivo "/etc/mysql/mysql.conf.d/mysqld.cnf" (¡es obligatorio!):

bind-address = 127.0.0.1

¡Funciona para mi! :-)


GRANT ALL PRIVILEGES ON *.* TO ''user''@''ipadress''


TO ''user''@''%''

% es un comodín, también puede hacer ''%.domain.com'' o ''%.123.123.123'' y cosas por el estilo si lo necesita.


  • INICIAR MYSQL usando el usuario administrador
    • mysql -u admin-user -p (INTRODUCIR CONTRASEÑA EN PROMOCIÓN)
  • Crear un nuevo usuario:
    • CREAR USUARIO ''newuser'' @ ''%'' IDENTIFICADO POR ''contraseña''; (% -> anyhost)
  • Otorgar privilegios:
    • GRANT SELECT, DELETE, INSERT, UPDATE ON db_name. * TO ''newuser'' @ ''%'';
    • PRIVILEGIOS DE LAVADO;

Si está ejecutando la instancia de EC2, no olvide agregar las reglas de entrada en el grupo de seguridad con MYSQL / Aurura.