Serwer MySQL z połączeniami zewnętrznymi

0

Witam. Cały dzień szukam i szukam darmowego hostinga, który ma w sobie MySQL, lecz zawsze napotykam błąd przy próbie połączenia się z MySQL "Unable to connect to any of the specified MySQL hosts". Moglibyście mi polecić jakiś darmowy hosting z bazą MySQL, która obsługuje połączenia zewnętrzne? abym mógł się łączyć przez program z nią, edytować itd. pliki w tej bazie. Z góry dziękuje

0

Praktycznie każdy hosting to udostępnia. Jeśli nie mozesz się połączyć to znaczy ze robisz to źle.

0
MySqlConnection con = new MySqlConnection("host=xxx;user=xxx;password=xxx;database=xxx;");
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
con.Open();

Coś takiego mam. Po włączeniu wyskakuje mi błąd przy tym

con.Open();  Unable to connect to any of the specified MySQL hosts. 
0

A jesteś pewny że podajesz poprawny host, taki który da sie pingować?

0

Na stronie jest napisane, że to jest host bazy MySQL, więc nie wiem

0

Jeśli rzeczywiście robię to źle to mógłby mi ktoś powiedzieć co dokładnie jest źle. Próbowałem na hostingach : "ugu,cba,hostinger,vixo" na żadnym z nich nie idzie połączyć się do MySQL

1
Shalom napisał(a):

Praktycznie każdy hosting to udostępnia. Jeśli nie mozesz się połączyć to znaczy ze robisz to źle.

Ja bym raczej powiedział, że prawie żaden hosting nie udostępnia połączeń na zewnątrz.

0

Więc, po której stronie prawda leży?

0
Tasman napisał(a):

Więc, po której stronie prawda leży?

Po stronie admina. W moim hostingu można łączyć się od wewnątrz i od zewnątrz. Do połączeń zewnętrznych używany jest inny adres. Dowiedź się po prostu - napisz na helpdesk lub coś w tym stylu.

0

A jeżeli stworzę SQL na swoim komputerze bo ludzie z innych komputerów będą mogli łączyć się z tą bazą? Chciałbym zrobić rejestracje aby program sprawdzał czy na SQL nie ma takiego konta, jeżeli nie ma to zapisze dane, które poda użytkownik. Można to jakoś zrobić bez tych darmowych hostingów MySQL?

0

O połączeniu zewnętrznym z bazą danych na darmowych hostingach zapomnij. Baza danych na Twoim komputerze to zły pomysł, musiałby on chodzić 24/7. Jeżeli chcesz zewnętrzne połączenia z bazą danych to zainwestuj w hosting. 5zł miesięcznie to nie jest majątek. Mogę polecić vipserv.org, sam korzystałem i nie było problemów, możliwe są połączenia zewnętrzne, ale to jest chyba w ofercie większości płatnych hostingów.

Ewentualnie możesz napisać skrypt PHP, który będzie się łączył z bazą danych i zwracał wyniki, a w programie będziesz go wywoływał z odpowiednimi argumentami.

1

Można, ale serwer na własnym PC? To nie będzie najlepsza opcja.

Podchodzisz do problemu od złej strony. Ty nie potrzebujesz serwera mysql przyjmującego połączenia z zewnątrz tylko webservice'u (niech będzie nawet w PHP). Udostępnianie bezpośredniego połączenia z bazą danych to prawie zawsze zły pomysł. Możliwości kontroli dostępu po stronie bazy danych są dość ograniczone i jestem pewien, że nawet o tym nie pomyślałeś. Pierwsza lepsza osoba mogłaby ci taką bazę wyczyścić posiadając kopię aplikacji.

0

Więc co możecie mi polecić zrobić, coś takiego łatwego, aby nie było łatwe do złamania i wygodne w obsłudze ;/

0
Tasman napisał(a):

Więc co możecie mi polecić zrobić, coś takiego łatwego, aby nie było łatwe do złamania i wygodne w obsłudze ;/

Ale co konkretnie chcesz osiągnąć?

0

Chcę zrobić program, w którym będzie można zarejestrować konto. Po zarejestrowaniu będzie można już się na nie logować bez potrzeby kolejnego rejestrowania. Właśnie mam problem gdzie te dane zapisać, bo w pliku odpada, gdyż nie robię tego programu tylko sobie, lecz dla innych ludzi. Chciałbym także aby program zapisał te zarejestrowane dane, przy rejestracji innego użytkownika sprawdzał czy podany login jest wolny itd.

0

Udało mi się w końcu połączyć z bazą MySQL na stronie vipserv.org (Podziękowania dla tomepaw). Teraz zaczynają się moje pytania. Każdy użytkownik, który zarejestruje konto doda linijkę w bazie MySQL (id,login,haslo,email). Jak mogę zrobić tak aby przy każdym zarejestrowaniu użytkownika (id) podniosło się o jeden, czy te id jest wgl potrzebne?. Drugie pytanie jest następujące, jak mogę sprawdzić czy login, którym użytkownik chce się zarejestrować jest w bazie danych (Próbowałem odczytać dokładną tabelę używając tego

SELECT `login` FROM `Konta`

, lecz czyta mi tylko pierwszą linijkę odnoszącą się do tej tabeli, innych już nie wyczytuje, wyskakuje taki komunikat przy próbie odczytania kolejnych loginów w tabeli login "Index was outside the bounds of the array."

0

Doszedłem już do tych rzeczy. Możecie mi powiedzieć czy baza danych na takim hostingu jak vipserv.org jest bezpieczna? łatwo mi się nie włamią ludzie, nie pokradną haseł itd.?

0

Zrobią to bez problemu.

0
Rev napisał(a):

Zrobią to bez problemu.

Stoję w podobnej sytuacji jak autor topicu. Wiadome, że to co jest w kodzie programu jest możliwe do odczytania, jednak czy odpowiednie uprawnienia użytkownika nie zmniejszają jakby skali problemu? W jaki inny (poprawny?) sposób można rozwiązać taki problem (tj. program potrzebuje dostępu do bazy danych na serwerze)?

0

Jakieś zabezpieczenia są co do tego? Zresztą za takie włamanie z kradzieżą powinna być jakaś konsekwencja, czy nie w tym wypadku?

0

Mam pytanie dotyczące MySQL.

id --- tekst --- ilosc dni
0 ania 7
1 tomek 14
2 marek 28

Jak mogę sprawdzić czy do tekstu "ania" jest przypisana ilosc dni 7?, lub sprawdzić jaka jest ilość dni przypisana do tekstu "ania", tak samo do reszty?

0

Być może chodzi Ci o:

 
SELECT * FROM nazwaTabeli WHERE tekst = 'ania'

ps. Są bardzo podstawowe zapytania do bazy sql.. 10 minut wstępnego zapoznania się z tym, a takie pytania na forum będą zbędne ;)

0

Doczekam się pomocy, czy to niemożliwe?

0

Przepraszam, nie zauważyłem, że ktoś odpisał. Jeżeli napiszę tą komendę to co ona mi zwróci?

1

Doczekam się pomocy, czy to niemożliwe?

Myślisz, że komukolwiek płacą tutaj za pomaganie tobie?

0

Więc po co jest to forum skoro nie chcecie pomagać?

0

@Tasman nie czytasz co się do ciebie pisze. Przede wszystkim łączenie się zdalnie do serwera stwarza problem bezpieczeństwa bo skoro Ty możesz się do niego podłączyć a hasło i login do bazy zapiszesz w programie to i Ja będę mógł przy pomocy tego loginu i hasła dostać się do Twojego serwera SQL. Ktoś tam napisał, że można zablokować Delete, ale co z tego jak wykonam wiele innych operacji, może nawet to delete będzie kiedyś potrzebne. Jak już @Rev pisał musi być warstwa pośrednicząca w komunikacji pomiędzy aplikacją u klienta a SQL'em.
Kombinowanie z użytkownikami MySQL i ich uprawnieniami nie jest proste bo musi to robić administrator ręcznie np. rejestrować użytkowników, ustawiać uprawnienia czy ich kasować, zazwyczaj na darmowym hostingu i tak będzie to 1 użytkownik więc to zły pomysł.

0

A jak mogę zabezpieczyć program aby hasła nie dało się wydobyć?

0

Hasła w programie na kompie użytkownika nie da się bezpiecznie przechować, ale jeśli napiszesz autoryzację w np. php to po zalogowaniu otrzymasz spersonalizowane informacje i możliwość podglądu czy edycji informacji przeznaczonych tylko dla tego konkretnego użytkownika a nie wszystkich i to już zapewnia bezpieczeństwo o które ci chodzi.

0

Biorąc pod uwagę pytania jakie zadajesz jestem pewny, że hasła trzymasz plain tekstem zamiast je chociaż haszować. Do tego aplikacja kliencka, która ma się bezpośrednio łączyć z bazą... wystarczy bardziej rozgarnięty gimnazjalista i wyciągnie Ci loginy i hasła wszystkich Twoich użytkowników...

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