Proszę zobaczyć zmiany poniżej, pozostawiam oryginalne pytanie, aby pomóc innym.Nie można połączyć się z lokalnym serwerem MySQL za pośrednictwem Apps Script (JDBC)
Próbuję połączyć się z lokalnym serwerem MySQL za pośrednictwem Apps Script i JDBC, ale ciągle pojawia się jeden z dwóch błędów. Ten kod:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost", "root", "xxx");
}
Daje błąd Failed to establish a database connection. Check connection string, username and password.
ten kod:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost:3306", "xxx", "pass");
}
daje błąd Invalid argument: url
.
Próbowałem dziesiątki kombinacji i nie mogę go uruchomić. Próby zalogowania się ze Skryptów Aplikacji nie pojawiają się w dzienniku dostępu do MySQL (tj. Jeśli próbuję zalogować się lokalnie z niepoprawnymi informacjami, widzę [Note] Access denied for user 'host'@'localhost' (using password: YES)
. Mam przyznane odpowiednie prawa dostępu do roota:
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for [email protected]% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
Czy muszę zrobić coś innego, aby odsłonić lokalnego DB do internetu/Google Apps Script
EDIT:
jestem teraz w stanie uzyskać dostępu odmówiono notatka z dziennika MySQL (np Access denied for user 'root'@'12.123.12.123' (using password: YES)
), ale aplikacja nadal nie może się połączyć. Próbowałem dodać bind-address
z moim publicznym adresem IP, ale MySQL nie uruchomi się, otrzymam ([ERROR] Can't start server: Bind on TCP/IP port: Can't assign requested address
)
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://12.123.12.123:3306", "root", "xxx");
}
EDIT2: Zmieniłem bind-address = 0.0.0.0 i że nie pozwoli mi uzyskać dostępu odmówiono błędy w dzienniku DB, ale nadal nie ma szczęścia podłączenia. Udało mi się połączyć z innymi otwartymi bazami danych MySQL w Internecie (np. Ensembldb.ensembl.org:3306), ale nadal nie mogę połączyć się z moją lokalną bazą danych.
Chyba masz problem, ponieważ adres IP jest poza zakresem danego IP waha się na białej liście. Więcej informacji można znaleźć w dokumentacji - [Ustawienia innych baz danych] (https://developers.google.com/apps-script/guides/jdbc#setup_for_other_databases). Mam nadzieję że to pomoże. –
@Mr.Rebot nie powinien "rootować" @ "%" 'zezwala na wszystkie adresy IP? – howMuchCheeseIsTooMuchCheese
Nie publikuj publicznego adresu IP własnego serwera, i proszę, proszę, nie łącz się z tym przy użyciu konta root! Nie dodawaj do białej listy wszystkich adresów "' ''%'' '', ale tylko te z serwerów google (wykonaj @ link Mr.Rebot). Może to trochę więcej pracy, ale będziesz bezpieczniejszy! – mTorres