Umożliwienie zdalnego połączenia do bazy MySQL

Kilka miesięcy temu wykonałem testy na komputerze lokalnym połączenia Excela z bazą danych MySQL. Nie przeprowadziłem testu z bazą MySQL znajdującą się na serwerze zewnętrznym – ale uważam, że założenia będą podobne?

Załóżmy, że chcesz napisać aplikację która ma być dostępna dla głównego użytkownika (który będzie aktualizował tabele) oraz podmioty zewnętrzne, które mają z tych danych korzystać. Wyobraźmy sobie, że masz sieć sieć sklepów kontrahentów, które sprzedają Twój towar w detalu. Możesz w Excelu napisać aplikację do konfiguracji zamówienia. Co ważne, przy aktualizacji np. cen nie musisz wysyłać nowego pliku Excelu, po prostu główny użytkownik aktualizuje ceny w bazie danych. Dodatkowo większość użytkowników posiada Excela, więc nie trzeba instalować dodatkowego oprogramowania.

Trzeba uważać, aby zabezpieczyć kod VBA przed dostępem osób trzecich, ponieważ connectionstring do bazy danych wraz hasłem i userem jest nieszyfrowany w konsoli.

Trzeba zmienić ustawienia użytkownika w MySQL, aby mógł się on łączyć z tabelą, czy bazą zdalnie  – czyli sytuacja, gdy baza MySQL jest na serwerze, a Excela mamy u siebie na komputerze. Najlepiej jest stworzyć nowego usera z uprawnieniami, które nas interesują.

Do przetestowania – dawno temu to stosowałem.

Źródło: http://stackoverflow.com/questions/10236000/allow-all-remote-connections-mysql

  1. Tworzymy bazę do testów w MySQL np. „Uzytkownicy”
  2. Dodajemy tabelę „Nazwy” z polami „ID, Imie, WIek”.
  3. Dodajemy usera wykonując kod w MySQL:

Możliwości ograniczenia dostępu dla usera:
*.* oznacza wszystkie bazy danych i tabele
db_name.* oznacza wszystkie tabele w db_name
db_name*tbl_name oznacza ograniczenie tylko do jednej tabeli w jednej bazie danych

Dodajemy kod do modułu VBA:

Podsumowanie: Powyższy kod VBA Excel umieszczony w poście pod tytułem "Umożliwienie zdalnego połączenia do bazy MySQL" zamieszczony na witrynie "exceldb.net" mógł zostać w całości pobrany z innej strony. Moim zamiarem nie jest kopiowanie czyiś rozwiązań tj. kodu VBA (dlatego zawsze staram się podać źródło kodu Excel VBA), a jedynie stworzenia miejsca skąd będę mógł pobrać działający już kod Excel VBA. Ten post pod tytułem "Umożliwienie zdalnego połączenia do bazy MySQL" zawiera kod VBA Excel, który kiedyś wykorzystałem - niniejszym archiwizuje go z myślą o przyszłych aplikacjach Excel VBA wykorzystujących "Umożliwienie zdalnego połączenia do bazy MySQL". Jeżeli osoby trzecie będą mogły skorzystać z tego kodu VBA "Umożliwienie zdalnego połączenia do bazy MySQL" będzie mi niezmiernie miło. Niech ta witryna "exceldb.net" będzie swego rodzaju wyminą informacji pomiędzy ludźmi programującymi w Excel VBA.
Link: http://exceldb.net/blog/2017/08/24/umozliwienie-zdalnego-polaczenia-do-bazy-mysql/