Question

J'accède à une base de données MySQL dans une application C ++ à l'aide de MySQL C ++ Connector. Cela fonctionne bien si j'ai le C ++ et le MySQL sur le même ordinateur. Donc, quelque chose comme le code suivant fonctionne 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");

Cependant, je ne semble pas pouvoir accéder à la base de données si celle-ci se trouve sur une autre machine. Donc, quelque chose comme ça:

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

Est-ce simplement impossible ou est-ce que je fais quelque chose de mal?

Était-ce utile?

La solution

Avez-vous accidentellement configuré vos utilisateurs pour qu'ils ne puissent accéder à votre base de données qu'à partir de la machine locale?

avez-vous fait

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

ou

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

Si vous l'avez fait en premier, vous ne pourrez pas vous connecter depuis un autre ordinateur.

Avez-vous également accordé les privilèges correctement?

Voir les docs de MySQL pour plus d'informations. explication détaillée sur la façon de le faire correctement

Autres conseils

Je l'ai fait via un VPN, donc je suppose que c'est possible. Utilisez-vous le bon port?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top