2016-04-03 3 views
2

Я использую Google Cloud SQL 2-го поколения и установил cloud-sql-proxy на моем локальном компьютере.MySQL Workbench не будет работать с Google Cloud SQL Proxy

На моей локальной машине я просто подключился к 127.0.0.1:3306, и это работает нормально, в NodeJs, Php и с помощью клиента командной строки mysql.

В операционной системе Google App Engine, управляемой виртуальной машиной (гибкая среда), я использую unix_socket или socketPath '/ cloudsql/MY_PROJECT_ID: us-central1: SQL_INSTANCE, это тоже отлично работает как в Php, так и в NodeJ.

Не работает MySQL Workbench, я не могу понять, как его подключить. Использует ли он другой протокол или является облачным-прокси-сервером только для командной строки?

Вот как я начинаю облако-SQL-прокси

это работает:

./cloud_sql_proxy \ 
    -instances=MY_PROJECT:us-central1:MY_SQL_INSTANCE=tcp:3306 \ 
    -credential_file='/Users/ME/SomeFolder/MY_SERVICE_ACC_KEY.json' 

после того, как я хотел бы использовать MySQL Workbench, чтобы попытаться подключиться к 127.0.0.1:3306, но я всегда получить сообщение об ошибке:

SSL connection error: socket layer receive error 

Локальный PHP, NodeJS и mysql клиент работают.

Любая помощь будет оценена

ответ

2

Хорошо, я получил это работает, и считаю, что это может быть полезным для других тоже:

Я не мог заставить его работать через соединение TCP, но я понял, как использовать метод сокета работает без предохранителя:

sudo ./cloud_sql_proxy \ 
    -dir=/cloudsql \ 
    -instances=MY_PROJECT:MY_SQL_REGION:MY_SQL_INSTANCE \ 
    -credential_file='/Users/ME/some_folder/MY_SERVICE_ACC_KEY.json' 

пара вещей здесь:

  1. Папка /cloudsql должна быть уже существует, например. sudo mkdir /cloudsql
  2. Не ошибется при вводе этого имени папки, на самом деле не
  3. Не указывайте порт TCP после instances или он будет использовать соединение TCP вместо.
  4. Судо необходимо

В MySQL Workbench:

  1. Выберите Database > Manage Connections...
  2. Под Connection > Connection MethodStandard (TCP/IP) выбрать
  3. Под Parameters установлен Host: localhostPort:3306 (хотя я не думаю, что это имеет значение)
  4. Goto Advanced>Others: введите socket=/cloudsql/MY_PROJECT:MY_SQL_REGION:MY_SQL_INSTANCE
  5. Нажмите Test Connection, чтобы указать имя пользователя и пароль, успех.
+1

... но мне все равно интересно узнать, почему он не будет работать через TCP/IP. –

+0

Но он работает через TCP/P. Этот шаг 2 в WB указывает на это. o_O –

+0

@MikeLischke Я предполагаю, что параметр сокета с шага 4 переопределяет это, поскольку я могу помещать что-либо в хост, и он все еще работает. Проверьте комментарии по теме Vadims, это ошибка MySQL Workbench. –

1

Эта ошибка указывает, что MySQL Workbench запрашивает SSL-соединение, которое не поддерживается через прокси-сервер.Прокси всегда использует SSL между локальной машиной и экземпляром, поэтому нет необходимости включать SSL на уровне протокола MySQL.

Можете ли вы попробовать отключить SSL в настройках подключения MySQL Workbench?

+1

Я сделал это вчера в отчаянии, но я дал ему еще одну попытку и изменил ее с «Если доступно» на «Никогда», все та же ошибка. В любом другом месте, где я должен отключить SSL? –

+0

Возможно, вы попали в эту ошибку: https://bugs.mysql.com/bug.php?id=74896. На какой ОС вы работаете? – Vadim

+0

OS X 10.11.4, я просмотрел отчет об ошибке, и это может быть действительно так. –

Смежные вопросы