Cloud SQL 代理错误 - 尝试以访问权限禁止的方式访问套接字
Posted
技术标签:
【中文标题】Cloud SQL 代理错误 - 尝试以访问权限禁止的方式访问套接字【英文标题】:Cloud SQL Proxy error - An attempt was made to access a socket in a way forbidden by its access permissions 【发布时间】:2016-07-05 06:31:30 【问题描述】:这是当我尝试使用 Cloud SQL Proxy 在 Windows 中配置对 Google Cloud SQL 的访问时出现的错误 - “listen tcp 127.0.0.1:3306: bind: An attempt was made to access a socket in a way被其访问权限所禁止。”
这是我使用的命令格式“cloud_sql_proxy.exe -dir=/cloudsql -instances=my-project:us-central1:sql-instance=tcp:3306 mysql -u --主机 " - 如docs 中所述。
谁能告诉我这是什么原因造成的?
【问题讨论】:
【参考方案1】:SQL Server 在本地使用 3306 端口。因此,您无法在它运行时绑定它。 停止 SQL Server 以将 CloudSQL 代理绑定到它。
在 Windows 10 的情况下:转到任务管理器 -> 服务 -> MySQL57
右键单击并停止该任务。完成后尝试再次运行相同的命令。它会工作并显示为输出
Listening on 127.0.0.1:3306 for <instance-name>
【讨论】:
差不多五年后,工作就像一个魅力。谢谢,特立独行! 救了我的命,以防有人使用 postgresql 相同的过程适用于 postgresql 进程【参考方案2】:听起来另一个进程已经在使用 3306。你可以尝试指定一个不同的端口吗?例如-instances=my-project:us-central1:sql-instance=tcp:3307
【讨论】:
很抱歉之前的评论,它没有用。我收到此错误 - “ERROR 2003 (HY000): Can't connect to MySQL server on 'ip-addr' (10060)”。 这是我在运行 Cloud SQL 代理时在 windows 命令提示符上得到的 - 2016/03/19 13:55:52 listenInstance: "my-project:us-central1: sql-instance=tcp:3307" 2016/03/19 13:55:52 在“localhost:3307”处为“my-project:us-central1:sql-instance”打开套接字 2016/ 03/19 13:55:52 套接字前缀:c:\cloudsql 光标一直在闪烁...... 什么版本的 Windows?您是使用网站上预编译的代理版本还是自己构建? 操作系统 - Windows 7 64 位。我使用的是预编译的 64 位版本【参考方案3】:根据 google docs 在 windows cmd 或 google sdk shell cloud_sql_proxy.cmd -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 -credential_file=<PATH_TO_KEY_FILE>
上使用此命令
(确保将 cloud_sql_proxy.cmd 声明为环境变量)在你的情况下
my-project:us-central1:sql-instance
PATH_TO_KEY_FILE = 在 IAM 面板中创建服务帐户并保存 json 文件,复制其路径并将其粘贴到此处。
如果这不起作用,请尝试将 tcp 连接到上面帖子中提到的 3307。
【讨论】:
【参考方案4】:我的情况是,我使用 docker 镜像,并且在我的本地机器上安装了相同的端口,因此本地 mysql 不允许访问该端口,因为它已经被使用并正在运行。我卸载了本地 mysql。现在它工作正常
【讨论】:
以上是关于Cloud SQL 代理错误 - 尝试以访问权限禁止的方式访问套接字的主要内容,如果未能解决你的问题,请参考以下文章
错误:匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限