Domanda

Sto accedendo a un database MySQL all'interno di un'app C ++ usando MySQL C ++ Connector. Funziona bene se ho C ++ e MySQL sulla stessa macchina. Quindi, qualcosa come il seguente codice funziona bene:

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");

Tuttavia, non riesco ad accedere al database se si trova su un'altra macchina. Quindi, qualcosa del genere:

sql::Connection             *_con;
sql::mysql::MySQL_Driver    *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://somesite.com:3306", "user", "password");

Non è possibile o sto facendo qualcosa di sbagliato?

È stato utile?

Soluzione

Hai configurato accidentalmente i tuoi utenti in modo che possano accedere al tuo DB solo dal computer locale?

Hai fatto

create user 'user'@'127.0.0.1' ...

o

create user 'user'@'%' ....

Se lo hai fatto per primo, non sarai in grado di accedere da un altro computer.

Hai concesso anche i privilegi correttamente?

Vedi i docs di MySQL per ulteriori informazioni spiegazione approfondita su come farlo correttamente

Altri suggerimenti

L'ho fatto tramite una VPN, quindi presumo sia possibile. Stai usando la porta corretta?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top