我使用MySQL C ++ Connector访问C ++应用程序中的MySQL数据库。如果我在同一台机器上安装了C ++和MySQL,它的工作正常。所以,类似下面的代码可以正常工作:
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");
但是,如果数据库位于另一台计算机上,我似乎无法访问该数据库。所以,像这样:
sql::Connection *_con;
sql::mysql::MySQL_Driver *_driver;
_driver = sql::mysql::get_mysql_driver_instance();
_con = _driver->connect("tcp://somesite.com:3306", "user", "password");
这是不可能还是我做错了什么?
答案 0 :(得分:3)
您是否意外地设置了用户,以便他们只能从本地计算机访问您的数据库?
你做过
create user 'user'@'127.0.0.1' ...
或
create user 'user'@'%' ....
如果你做了第一次,那么你将无法从另一台机器登录。
您是否也正确授予了权限?
有关如何正确执行此操作的更深入解释,请参阅MySQL docs
答案 1 :(得分:1)
我通过VPN完成了这项工作,所以我认为这是可能的。你使用的是正确的端口吗?