Ist MySQL C ++ Connector-Zugriff auf Remote-Datenbank möglich?
-
05-07-2019 - |
Frage
Ich bin Zugriff auf eine MySQL-Datenbank innerhalb eines C ++ App MySQL C ++ Connector. Es funktioniert gut, wenn ich die C ++ und die MySQL auf demselben Computer haben. Also, so etwas wie der folgende Code funktioniert gut:
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");
Allerdings kann ich nicht scheinen, auf die Datenbank zuzugreifen, wenn es auf einem anderen Rechner befindet. So etwas wie folgt aus:
sql::Connection *_con;
sql::mysql::MySQL_Driver *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://somesite.com:3306", "user", "password");
Ist es einfach nicht möglich, oder mache ich etwas falsch?
Lösung
Haben Sie versehentlich Setup Benutzer, so dass sie nur Ihre DB vom lokalen Rechner zugreifen kann?
Haben Sie tun
create user 'user'@'127.0.0.1' ...
oder
create user 'user'@'%' ....
Wenn Sie das erste tun dann werden Sie nicht in der Lage sein, von einer anderen Maschine anmelden.
Haben Sie auch die Privilegien gewähren richtig?
Sehen Sie die MySQL docs für eine in der Tiefe Erklärung, wie diese richtig zu tun
Andere Tipps
Ich habe dies durch einen VPN getan, so gehe davon aus ich es möglich ist. Sind Sie die richtige Port?