Soy consciente de este comando:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Pero luego solo me permite otorgar una dirección IP particular para acceder a esta base de datos remota de MySQL. ¿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.
Respuestas:
% es un comodín: también puede hacer
'%.domain.com'
o'%.123.123.123'
cosas así si lo necesita.fuente
-h my_machine_name
parámetro. Esto engaña al cliente para que te identifique como'user'@my_machine_name.example.com
, en lugar de'user'@localhost
. De esta manera, no necesita crear y mantener cuentas duales y concesiones para amboslocalhost
y acceso a la red. Y, por supuesto, estar seguromysqld
está obligado a0.0.0.0
frente127.0.0.1
.Habilitar acceso remoto (Grant) Inicio / Tutoriales / Mysql / Habilitar acceso remoto (Grant) Si intenta conectarse a su servidor mysql desde una máquina remota y se encuentra con un error como el siguiente, este artículo es para usted.
Cambiar la configuración de mysql
Comience con la edición del archivo de configuración mysql
Comente las siguientes líneas.
Si no encuentra la línea de salto de red, agréguela y coméntela.
Reinicie el servidor mysql.
Cambiar privilegio GRANT
Es posible que se sorprenda al ver incluso después del cambio anterior que no obtiene acceso remoto o acceso pero no puede acceder a todas las bases de datos.
De manera predeterminada, el nombre de usuario y la contraseña de mysql que está utilizando puede acceder a mysql-server localmente. Entonces necesita actualizar el privilegio.
Ejecute un comando como el siguiente para acceder desde todas las máquinas. (Reemplace
USERNAME
yPASSWORD
por sus credenciales).Ejecute un comando como el siguiente para dar acceso desde una IP específica. (Reemplace
USERNAME
yPASSWORD
por sus credenciales).Puede reemplazar 1.2.3.4 con su IP. Puede ejecutar el comando anterior muchas veces para OTORGAR acceso desde múltiples IP.
También puede especificar un acceso remoto
USERNAME
y separadoPASSWORD
.Puede verificar el resultado final de la siguiente manera:
Finalmente, también puede necesitar ejecutar:
Conexión de prueba
Desde terminal / línea de comando:
Si obtiene un shell mysql, no olvide ejecutar show database; para verificar si tiene privilegios correctos de máquinas remotas.
Consejo adicional: revocar acceso
Si accidentalmente concede acceso a un usuario, es mejor tener a mano la opción de revocación.
A continuación se revocarán todas las opciones para USERNAME de todas las máquinas:
Si ve el privilegio USAGE después de ejecutar el comando REVOKE, está bien. Es tan bueno como ningún privilegio en absoluto. No estoy seguro de si se puede revocar.
fuente
/etc/mysql/mysql.conf.d/mysqld.cnf
archivo en lugar de/etc/mysql/my.cnf
comentar labind-address
parte. La#skip-networking
línea de falta y no debe haber ningún efecto de la adición y comentando la línea./etc/mysql/mariadb.conf.d/50-server.cnf
3306
o el puerto que haya configuradoSuponiendo que el paso anterior se haya completado y que el puerto MySql 3306 se pueda acceder de forma remota; No olvide vincular la dirección IP pública en el archivo de configuración mysql.
Por ejemplo en mi servidor ubuntu:
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 así
puede eliminar el enlace localhost (127.0.0.1) si lo desea, pero luego debe proporcionar específicamente una dirección IP para acceder al servidor en la máquina local.
Luego, el último paso es reiniciar el servidor MySql (en ubuntu)
o
#/etc/init.d/mysql restart
para otros sistemasAhora se puede acceder a la base de datos MySQL de forma remota mediante:
fuente
/etc/init.d/mysql reload
debería ser suficientebind-address
directiva determina la dirección IP en la que escucha el servidor mysql ; no las direcciones IP desde las cuales el servidor acepta conexiones.bind-address
la dirección localhost o la de host remota.mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Para cualquiera que haya intentado esto, así es como obtuve los privilegios, espero que ayude a alguien
Como se señaló,
%
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 conectas tendrás un usuario llamadoroot
(que es el predeterminado). Introduce la contraseña de root y listo. Tenga en cuenta que no tengo comillas simples ('
) alrededor de la raíz del usuario.fuente
Se requieren cambios en el archivo de configuración para habilitar las conexiones a través de localhost.
Para conectarse a través de IP remotas, inicie sesión como usuario "root" y ejecute las siguientes consultas en mysql.
Esto creará un nuevo usuario al que se puede acceder en localhost, así como desde IP remotas.
También comente la siguiente línea de su archivo my.cnf ubicado en /etc/mysql/my.cnf
Reinicia tu mysql usando
Ahora debería poder conectarse de forma remota a su mysql.
fuente
Usa este comando:
Luego:
Luego comente la línea siguiente en el archivo "/etc/mysql/mysql.conf.d/mysqld.cnf" (¡es obligatorio!):
¡Funciona para mi!
fuente
your-password-does-not-satisfy-the-current-policy-requirements
Para poder conectarse con su usuario desde cualquier dirección IP, haga lo siguiente:
Permita que el servidor mysql acepte conexiones remotas. Para este archivo mysqld.conf abierto:
Busque la línea que comienza con "bind-address" y establezca su valor en 0.0.0.0
y finalmente guarde el archivo.
Nota: Si está ejecutando MySQL 8+, la
bind-address
directiva no estará en elmysqld.cnf
archivo por defecto. En este caso, agregue la directiva al final del archivo/etc/mysql/mysql.conf.d/mysqld.cnf
.Ahora reinicie el servidor mysql, ya sea con
systemd
o use elservice
comando anterior . Esto depende de su sistema operativo:Finalmente, el servidor mysql ahora puede aceptar conexiones remotas.
Ahora necesitamos crear un usuario y otorgarle permiso, para que podamos iniciar sesión con este usuario de forma remota.
Conéctese a la base de datos MySQL como root, o cualquier otro usuario con privilegios de root.
ahora cree el usuario deseado tanto en localhost como en '%' comodín y otorgue permisos en todos los DB como tales.
Luego,
Y, por último, no te olvides de eliminar los privilegios
Nota: Si ha configurado un firewall en su servidor de base de datos, también deberá abrir el puerto
3306
predeterminado del MySQL para permitir el tráfico a MySQL.Espero que esto ayude ;)
fuente
Ejecute lo siguiente:
Luego intente una conexión desde la dirección IP que especificó:
Deberías poder conectarte.
fuente
Puedes resolver el problema de MariaDB con este comando :
Nota:
%
Es un comodín. En este caso, se refiere a todas las direcciones IP.fuente
fuente
Para acceder de forma remota a la base de datos del servidor Mysql 8:
fuente
Si está ejecutando una instancia EC2, no olvide agregar las reglas de entrada en el grupo de seguridad con MYSQL / Aurura.
fuente
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.
Todo el servidor Linux funciona,
Para MSWin c: \ Buscar ubicación de instalación \ ruta del archivo
fuente
Simplemente cree el usuario en 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 cambia la líneabind-address = 127.0.0.1
abind-address = 0.0.0.0
Después de eso, puede conectarse a esa base de datos desde cualquier IP.
fuente
Abra su
mysql console
y ejecute el siguiente comando (ingrese su nombre de base de datos, nombre de usuario y contraseña):Luego ejecutar:
Abra la línea de comando y abra el archivo
/etc/mysql/mysql.conf.d/mysqld.cnf
usando cualquier editor conroot privileges
.Por ejemplo:
Luego comente la siguiente línea:
Reinicie mysql para reflejar los cambios usando el comando:
Disfrutar;)
fuente
Necesita cambiar el archivo de configuración de mysql:
Comience con la edición del archivo de configuración mysql
añadir:
fuente
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 uno solo
%
, puede acceder a su base de datos desde cualquier IP o sitio web, incluso desde aplicaciones de escritorio.fuente
Por ejemplo en mi CentOS
comentar las siguientes líneas
luego
fuente
Si desea otorgar acceso remoto a su base de datos desde cualquier dirección IP, ejecute el comando mysql y luego ejecute el siguiente comando.
fuente
lo que funcionó en Ubuntu es otorgar todos los privilegios al usuario:
y configurando la dirección de enlace en
/etc/mysql/mysql.conf.d/mysqld.cnf
:luego reiniciando el demonio mysql:
fuente
Puede deshabilitar toda la seguridad editando /etc/my.cnf:
fuente