Su-*_*ang 3 mysql-workbench google-cloud-sql cloud-sql-proxy
我正在使用 Google Cloud SQL 第二代,并在本地计算机上安装了cloud-sql-proxy 。
在我的本地计算机上,我只需连接到 127.0.0.1:3306,并且在 NodeJs、Php 和使用 mysql 命令行客户端中运行良好。
在 Google App Engine 托管 VM(灵活环境)上,我使用 unix_socket 或 socketPath '/cloudsql/MY_PROJECT_ID:us-central1:SQL_INSTANCE' 这在 Php 和 NodeJs 中也运行良好。
MySQL Workbench 不起作用,我不知道如何连接它。它是否使用其他协议或者 cloud-sql-proxy 仅用于命令行?
这是我启动 cloud-sql-proxy 的方法
这有效:
./cloud_sql_proxy \
-instances=MY_PROJECT:us-central1:MY_SQL_INSTANCE=tcp:3306 \
-credential_file='/Users/ME/SomeFolder/MY_SERVICE_ACC_KEY.json'
Run Code Online (Sandbox Code Playgroud)
之后我使用 MySQL Workbench 尝试连接到 127.0.0.1:3306,但总是收到错误:
SSL connection error: socket layer receive error
Run Code Online (Sandbox Code Playgroud)
本地 PHP、NodeJS 和 mysql 客户端也可以工作。
任何帮助,将不胜感激
好的,我已经成功了,并且相信它对其他人也可能有用:
我无法让它通过 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'
Run Code Online (Sandbox Code Playgroud)
这里有几件事:
/cloudsql必须已经存在,例如sudo mkdir /cloudsqlinstances否则它将使用 tcp 连接。在 MySQL 工作台中:
Database > Manage Connections...Connection > Connection Method选择Standard (TCP/IP)Parameters集Host: localhost Port:3306(虽然我认为这并不重要)Advanced>Others:输入socket=/cloudsql/MY_PROJECT:MY_SQL_REGION:MY_SQL_INSTANCETest Connection它应该是你的用户名和密码,成功。| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |