O acesso ++ conector MySQL C ao banco de dados remoto é possível?
-
05-07-2019 - |
Pergunta
Eu estou acessando um banco de dados MySQL dentro de app um C ++ usando o MySQL ++ Connector C. Ele funciona muito bem se eu tiver o C ++ e o MySQL na mesma máquina. Então, algo como o seguinte código funciona bem:
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");
No entanto, eu não consigo acessar o banco de dados se ele estiver localizado em outra máquina. Então, algo como isto:
sql::Connection *_con;
sql::mysql::MySQL_Driver *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://somesite.com:3306", "user", "password");
É simplesmente não é possível ou estou fazendo algo errado?
Solução
Será que você acidentalmente configurar seus usuários para que eles só podem acessar seu banco de dados a partir da máquina local?
Você fez
create user 'user'@'127.0.0.1' ...
ou
create user 'user'@'%' ....
Se você fez o primeiro, então você não será capaz de fazer logon a partir de uma máquina diferente.
Você também concede os privilégios corretamente?
Veja o MySQL docs para uma mais na explicação detalhada sobre como fazer isso corretamente
Outras dicas
Eu tenho feito isso por meio de uma VPN, por isso estou assumindo que é possível. Você está usando a porta correta?