sql >> Base de Datos >  >> RDS >> Mysql

Conexiones remotas Mysql Ubuntu

Para exponer MySQL a cualquier otra cosa que no sea localhost, deberá tener la siguiente línea

Para mysql versión 5.6 y anteriores

sin comentar en /etc/mysql/my.cnf y asignado a la dirección IP de su computadora y no loopback

Para mysql versión 5.7 y superior

sin comentar en /etc/mysql/mysql.conf.d/mysqld.cnf y asignado a la dirección IP de su computadora y no loopback

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

O agregue una bind-address = 0.0.0.0 si no desea especificar la IP

Luego detenga y reinicie MySQL con la nueva entrada my.cnf. Una vez en ejecución, vaya a la terminal e ingrese el siguiente comando.

lsof -i -P | grep :3306

Eso debería devolver algo como esto con su IP real en xxx

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Si la afirmación anterior es correcta, podrá aceptar usuarios remotos. Sin embargo, para que un usuario remoto se conecte con los privilegios correctos, debe tener ese usuario creado tanto en el servidor local como en '%'.

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'@'%';

y finalmente,

FLUSH PRIVILEGES; 
EXIT;

Si no tiene el mismo usuario creado que el anterior, cuando inicia sesión localmente, puede heredar los privilegios básicos de localhost y tener problemas de acceso. Si desea restringir el acceso que tiene mi usuario, deberá leer la sintaxis de la instrucción GRANT AQUÍ Si supera todo esto y aún tiene problemas, publique algunos resultados de error adicionales y las líneas apropiadas de my.cnf.

NOTA:Si lsof no regresa o no se encuentra, puede instalarlo AQUÍ basado en su distribución de Linux. No necesita lsof para que las cosas funcionen, pero es extremadamente útil cuando las cosas no funcionan como se esperaba.

ACTUALIZACIÓN:si incluso después de agregar/cambiar la bind-address en my.cnf no funcionó, entonces vaya y cámbielo en el lugar donde se declaró originalmente:

/etc/mysql/mariadb.conf.d/50-server.cnf