7

Próbuję skonfigurować lokalne połączenie dla instancji chmury sql drugiej generacji.Nieautoryzowany błąd w usłudze cloud_sql_proxy lokalnie

Zaproszenie do pełnomocnika jest

./cloud_sql_proxy -dir=/cloudsql -instances=status-1268:us-central1:status-dev=tcp:3306 & mysql -u status_stg --host 127.0.0.1 

Jestem nieco niejasne, w jaki sposób prawidłowo skonfigurowane konta usług z sekcji API, więc próbowałem zarówno z domyślnych, konta App domyślny usług silnik i Oblicz domyślne konto usługi silnika. Stworzyłem także nowe jedno konto usługi. Dla każdego z nich przypisałem identyfikator konta usługi jako Edytor i Właściciel z sekcji zarządzania uprawnieniami. Być może istnieje inny sposób włączenia interfejsu Cloud SQL Admin API dla tych kont?

Wyjście z serwera proxy, gdy moja usługa próbuje rozmawiać z DB:

./cloud_sql_proxy -dir=/cloudsql -instances=status-1268:us-central1:status- dev=tcp:3306 & mysql -u status_stg --host 127.0.0.1 
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61) 
2016/04/04 11:26:58 Open socket for "status-1268:us-central1:status-dev" at  "127.0.0.1:3306" 
2016/04/04 11:26:58 Socket prefix: /cloudsql 
2016/04/04 11:27:10 Got a connection for "status-1268:us-central1:status-dev" 
2016/04/04 11:27:11 couldn't connect to "status-1268:us-central1:status-dev": googleapi: Error 403: The client is not authorized to make this request., notAuthorized 
2016/04/04 11:29:08 Got a connection for "status-1268:us-central1:status-dev" 
2016/04/04 11:29:08 couldn't connect to "status-1268:us-central1:status-dev": googleapi: Error 403: The client is not authorized to make this request., notAuthorized 

myśli na co zwrócić uwagę? Myślę, że brakuje tu czegoś podstawowego, konfigurując konta usług.

(Ogólnie, dla mojego projektu Używam node.js wyraźnej aplikację i nadzieją, aby podłączyć go do 2 Gend cloud instancji SQL DB bez konieczności narażać go 0.0.0.0 jak obecnie mam pracę)

Dziękujemy

Odpowiedz

2

Proszę dokładnie sprawdzić ciąg połączenia. Wygląda na to, że twoje poświadczenia są w porządku, więc prawdopodobnie wystąpił błąd w nazwie instancji.

zalecam skopiowanie & wklejając „nazwę połączenia Instance” od strony Cloud Console na przykład:

instance details

+0

Mam to już na miejscu, ustawiając zmienną środowiskową "GOOGLE_APPLICATION_CREDENTIALS". Jeśli to nie działało, pojawia się inny błąd, który uruchamia zapytanie proxy o flagę '-credential_file'. – georges

+0

Ach, rozumiem, przykro, że nie było jasne z oryginalnego postu. Zaktualizowałem swoją odpowiedź - proszę dwukrotnie sprawdzić nazwę instancji (w tym identyfikator projektu). – Vadim

+0

Niewiarygodne. Dzięki za sugestię, to naprawdę była zła nazwa po tym, jak wszyscy się gapili. – georges

3

W moim przypadku problemem było to, że konto usługi nie ma prawidłowego rolę . Powinieneś przynajmniej ustawić go w Edytorze.

+1

To był także mój problem, z komunikatem o błędzie opisanym w pytaniu. Domyślne konto usługi nie wymaga uprawnień redaktora do prawidłowego uruchomienia proxy. – tmarthal

1

Istnieje wiele przyczyn takiego błędu.

Oto rozwiązania:

1) Kopia nazwa instancji SQL przykład z zakładki 'Przegląd'. enter image description here

2) Użytkownik może nie mieć dostępu do klienta sql klienta .

here to więcej szczegółów.