Applet Java Servlet nie łączy się z Cloud SQL
Stworzyłem serwlet WWW java przy użyciu silnika aplikacji, serwlet wysyła żądania do bazy danych. Przetestowałem serwlet lokalnie przy użyciu lokalnej bazy danych i działał on doskonale, następnie przystąpiłem do testowania serwletu lokalnie, ale dostęp do bazy danych Cloud SQL był możliwy.
Mój problem pojawia się po wdrożeniu serwletu. Po wdrożeniu wszystkie żądania bazy danych zwracają:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not
received any packets from the server.
Sprawdziłem w konsoli chmury, a moja aplikacja została poprawnie dodana do aplikacji Autoryzowanego aparatu aplikacji SQL w chmurze na karcie Kontrola dostępu.
Czy ktoś miał podobne problemy z wdrożonymi apletami silnika aplikacji? Jakieś rozwiązania lub porady? Byłbym wdzięczny za każdą pomoc!
AKTUALIZACJA:
Powyższy błąd został wygenerowany przy użyciu następującego kodu w celu uzyskania dostępu do db
Class.forName("com.mysql.jdbc.Driver");
Url = "jdbc:mysql://<ip-address-cloudsql>:3306/<dbname>";
Connection con = DriverManager.getConnection (Url,"root",<password>);
ten sam błąd został uzyskany przy użyciu tego kodu, zauważ, że jest bardzo podobny do kodu pokazanego w przykładzie tutajhttps://developers.google.com/appengine/docs/java/cloud-sql/
Class.forName("com.mysql.jdbc.GoogleDriver");
Url = "jdbc:google:mysql://<appID:instanceID>/<dbname>?
user=root&password=<password>";
Connection con = DriverManager.getConnection (Url);
Postępowałem zgodnie ze wskazówkami dotyczącymi formatowania w tym wpisie dotyczącym stackoverflow, gdy ustawiłem adres URL przy użyciu identyfikatora appid i instancji:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Zastosowanie tego kodu spowodowało następujący błąd:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Zakładam, że mówi localhost, ponieważ moja baza danych cloudsql jest ustawiona na serwlet aparatu aplikacji. Wiedz również, że obie te metody działały dobrze podczas lokalnego uruchamiania serwletu i uzyskiwania dostępu do bazy danych w chmurze.
jakieś pomysły? nie wiem co jeszcze spróbować: [