¿Es posible el acceso de MySQL C ++ Connector a la base de datos remota?
-
05-07-2019 - |
Pregunta
Estoy accediendo a una base de datos MySQL dentro de una aplicación C ++ usando MySQL C ++ Connector. Funciona bien si tengo el C ++ y el MySQL en la misma máquina. Entonces, algo como el siguiente código funciona bien:
sql::Connection *_con;
sql::mysql::MySQL_Driver *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://127.0.0.1:3306", "user", "password");
Sin embargo, parece que no puedo acceder a la base de datos si está ubicada en otra máquina. Entonces, algo como esto:
sql::Connection *_con;
sql::mysql::MySQL_Driver *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://somesite.com:3306", "user", "password");
¿No es posible o estoy haciendo algo mal?
Solución
¿Configuró accidentalmente a sus usuarios para que solo puedan acceder a su base de datos desde la máquina local?
Lo hiciste
create user 'user'@'127.0.0.1' ...
o
create user 'user'@'%' ....
Si hizo el primero, no podrá iniciar sesión desde una máquina diferente.
¿También otorgó los privilegios correctamente?
Consulte MySQL docs para obtener más información. Explicación profunda sobre cómo hacer esto correctamente
Otros consejos
He hecho esto a través de una VPN, así que asumo que es posible. ¿Está utilizando el puerto correcto?