2013-02-26 2 views
0

Я сделал небольшое приложение C# Win Forms, которое подключается к базе mySQL с использованием mySQLconnector. Это работает отлично с моим localhost.mysql удаленный доступ к серверу из приложения C#

String ConnectionString = "server=xx.xxx.xx.xxx;uid=myuserid;pwd=mypassword;database=dbname"; 

Но я получаю следующее сообщение об ошибке при попытке подключиться к удаленному серверу: Невозможно подключиться к любому из указанных хостов MySQL. {"Никакого соединения не может быть сделано, потому что целевая машина активно отказалась от него xx.xxx.xx.xxx:3306"}

Я отсканировал сервер из командной строки и получил ответ. Я также проверил параметры сервера mySQL в базе данных удаленных серверов (правильное имя/ip, portno: 3306, skip networking: OFF)

Удаленный сервер доступен без каких-либо проблем с веб-сервера, который запускает скрипт php и использует те же настройки, что и упомянутое выше соединение.

Сервер mySQL размещен на внешней общедоступной хостинговой компании 123reg.co.uk со мной, регистрируясь на phpmyadmin, используя тот же uid/passwd, что и в строке подключения. Я не могу понять, что отличает веб-сервер от доступа, но мое приложение C# имеет проблемы с этим?

Может ли одна просьба помочь ...

Заранее спасибо Sam

+0

Вы пытались телнет [IP-адрес сервера] [порт] и посмотреть, работает ли он? – ysrb

+1

Скорее всего, 123reg не позволяет напрямую подключаться к серверу mysql, и он будет скрыт за брандмауэром. – adrianbanks

ответ

0

Ваш IP-адрес будет отличаться от веб-сервера. Если ваш IP-адрес является статическим, вы можете предоставить доступ к вашему IP-адресу в базе данных mysql (https://www.google.com.au/search?q=mysql+grant+access+to+user+from+host). Я бы рекомендовал использовать сервер для доступа к базе данных и сделать ваше приложение C# с вашим сервером с помощью вызовов ajax/json (https://www.google.com.au/search?q=C%23+Win+Forms+ajax+json) - таким образом вы не привязаны к ip-адресу для доступа. В качестве альтернативы вы можете посмотреть настройки туннелей ssh ​​на ваш веб-сервер, если доступен доступ к удаленной оболочке, чтобы вы могли получить тот же доступ, что и ваш веб-сервер. (https://www.google.com.au/search?q=ssh+tunnels+example+mysql Это то, что я делаю сам)

0

У меня возникли проблемы с настройкой серверов, поэтому они не будут принимать удаленные подключения. Это в основном из соображений безопасности. Некоторые места позволят вам включить его в CP, но если у вас есть прямой доступ к серверу, вы должны следовать этим шагам.

http://www.rackspace.com/knowledge_center/article/mysql-connect-to-your-database-remotely

Смежные вопросы