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