Возможен ли доступ MySQL C ++ Connector к удаленной базе данных?

StackOverflow https://stackoverflow.com/questions/1411652

Вопрос

Я получаю доступ к базе данных MySQL в приложении на C ++, используя MySQL C ++ Connector.Это работает нормально, если у меня есть 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 Документы для более подробного объяснения того, как это сделать правильно

Другие советы

Я сделал это через VPN, поэтому я предполагаю, что это возможно. Вы используете правильный порт?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top