MySQL- zewnętrzny serwer

0

Witam, mam problem z połączeniem z się z moją bazą danych przez program.
Na localhost działa wszystko ok. Gdy łączę się z moją zewnętrzną bazą danych przez wiersz poleceń również wszystko jest ok, ale gdy próbuje przez program który napisałem, a na localu łączył się bez problemów dostaje błąd
"Additional information: Unable to connect to any of the specified MySQL hosts."
W czym może być problem?
Z tego co szukałem w necie baza ta na zewn. serwerze mogła mieć wyłączone przyjmowanie połączeń z zewnątrz, jednak przez wiersz poleceń działa, więc chyba nie w tym jest problem.
Proszę o pomoc

0

Może twój program próbuje łączyć się z hostem 127.0.0.1.
No, taka jedna z propozycji. Możesz zadzwonić do Wróżbity Macieja po więcej.

0

ale wpisuje mu adres z jakim się ma łączyć
conDatabase = new MySqlConnection("SERVER=adres; DataBase=baza; UserId=root; PWD=passwd;");
i nie sprawdzałem przez wiersz poleceń (tu mój błąd) tylko łączyłem się przez putty i bez problemów tam miałem dostęp do bazy
oczywiście w polu adres jest wpisany ten sam adres co wpisywałem w putty

0

Łączyłeś się przez Putty na SSH i dopiero wtedy używałeś czegoś w stylu polecenia mysql? To wiesz, jest różnica, bo de facto łączyłeś się wtedy z bazą lokalnie.

0

nie wiem czy dobrze zrozumiałem, ale
jak łączyłem się przez putty, po zalogowaniu na serwer miałem dostęp do plików na nim. Wpisałem wtedy polecenia mysql -unazwaUsera -phaslo i normalnie mogłem pracować na bazie.
Jak zrobić by mój program mógł pracować na tej bazie danych.
Acha, czyli chcesz powiedzieć, że jednak nie muszę mieć tych uprawnień w mysql do połączeń z zewnątrz?

0

Tak, to co zrobiłeś to jest właśnie zalogowanie się lokalne.

<code>cat find /etc -name my.cnf | grep "bind-address"</code>
Spróbuj zrobić coś takiego. Jak będzie tam podany 127.0.0.1 to znaczy, że serwer nasłuchuje tylko lokalnie. Jak masz prawa administracyjne to możesz zmienić bind-address na adres ip interfejsu, który jest połączeniem ze światem albo wpisać 0.0.0.0.

0

ok, wielkie dzięki. Naświetliłeś mi trochę sprawę.
Teraz nie mogę tego zmienić bo nie mam uprawnień więc muszę skontaktować się z adminem.
Teoretycznie po tej zmianie powinno to działać, tak?

0

Jeżeli obecnie w konfiguracji znajduje się adres 127.0.0.1 to tak.

0

W destination daj localhost i w kodzie / visual studio też podaj localhost.

0

ok, pozmieniałem trochę w ustawieniach i myślę, że jest lepiej.
Teraz jak próbuję się łączyć i mam włączone ssh przy pomocy putty to wywala błąd
Connector/Net no longer supports server versions prior to 5.0
a gdy mam wyłączony ssh to wywala całkiem inny. Czyli teraz jakby postęp. Czy ten błąd oznacza, że powinienem użyć starszej wersji tego Connectora? Proszę o pomoc bo nie wiem czy w dobrym kierunku idę

0

Gdy masz wyłączonego putty to wyrzuca inny błąd, bo nie może się z serwerem połączyć ;). Tak, weź starszą wersję connectora.

0

teraz, po zmianie na starszą wersje connectora pojawia się
Access denied for user 'ppstud'@'serw' (using password: YES)
w c#, do połączenia się z tą bazą

conDatabase = new MySqlConnection("SERVER=localhost; DataBase=nazwaBazy; UserId=user; PWD=pass;");
conDatabase.Open();

Dane na pewno są poprawne, a ten komunikat co się pojawia świadczy o tym, że połączenie przez ssh się powiodło, bo wykrył sobie to "serw".
A gdy łączę się z tą bazą przez putty mysql -uuser -ppass to jest ok
Bardzo proszę o pomoc, bądź jakąś pomocną sugestię w czym może być jeszcze problem

0

Sprawdź, czy masz pozwolenie na połączenie się z tego hosta, z którego się łączysz. Popatrz na tabelę mysql.users, może tam jest podane, że ppstud może się tylko łączyć np. z wewnątrz agh, a z zewnętrznych hostów już nie.

0

no tak, ale z tej sieci z której się łączę to przez putty działa, gdy robie tunelowanie ssh to chyba też powinno działać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1