我使用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");

这是不可能还是我做错了什么?

有帮助吗?

解决方案

您是否意外地设置了用户,以便他们只能从本地计算机访问您的数据库?

你做过

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

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

如果你做了第一次,那么你将无法从另一台机器登录。

您是否也正确授予了权限?

有关详情,请参阅MySQL docs 深入解释如何正确地做到这一点

其他提示

我通过VPN完成了这项工作,所以我认为这是可能的。你使用的是正确的端口吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top