-
Notifications
You must be signed in to change notification settings - Fork 350
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Unix sockets on Windows #84
Comments
This is specifically for postgres+Windows. Note that non-tcp isn't
supported for Windows+MySQL instances, but I think another (more specific)
error comes out.
|
@matthewvalimaki You are a life saver!!!! Wish I had checked the Issues section here first. Could you enumerate for my understanding why the tcp:5433 ? |
@chatterjee1977 the The tool does not make any guesses when it comes to protocol or port when on Windows. My question in the original was if |
On a separate page located here This has the steps to invoke this from a Windows machine with the following command line after creating a service account ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 |
Other than defaulting to TCP on windows, another option is to add support named pipes in windows, which works for just MySQL (not postgres). I've considered doing tcp by default on windows, but I am mostly afraid of people being confused about which port the Proxy starts listening on. There's definitely some things that can be done here, but I don't personally have a lot of time to look into it. Hopefully the code is simple enough for people to send pull requests (but admittedly, the logic to set up new connections is a bit complex). |
Hello, guys. I'm trying to connect to my postgreSQL instance and get the same error when starting
Could you please write how exactly do you worked around Linux directories creation on Windows? Update: @matthewvalimaki as I understand from your message, you've rebuilt the exe-file with fixed separators. Could you please send/attach this file somehow? Or at least show where to fix it in the sources? |
Any sort of attempt to work with unix sockets will not work on windows; you must use the tcp option to get things working. Can you share the exact command line which you used which included the extra TCP part? The fact that you say it failed with the same output makes me think you have a typo. It should not print the same output |
Hello, @Carrotman42, thanks for answering. Hm, I double-checked the spelling and tried this: and it seems to be working!
Thanks a lot for pointing! Ha-ha, and I already found a place to replace the directory in
as in the first comment. But it looks like the public version of exe is actually working, and I've just mistyped the tcp parameter. |
Note: the new version of Go supports unix sockets on windows: https://tip.golang.org/doc/go1.12#syscall Not sure if MySQL's CLI supports it, though. |
This feature would be helpful, because I develop on Windows with local firebase emulation and proxy. Currently I have to instrument the firebase function with host+ip connectivity to be able to use the local emulator, whereas in the cloud it uses socketPath. It would be nice to not have to switch between the two. Thank you. |
and still none of the above is able to solve this |
It's not ideal to have a mismatch between a dev environment (Windows with TCP sockets) and a prod environment (Linux with a Unix socket), but right now that's the way to workaround this limitation. One option would be to connect to a database using the host as an environment variable that would be the full Unix socket path in the deployed function, and localhost with a port on your dev machine. That's basically what @royappa is doing, I think. |
There is support for Unix sockets on Windows in Go now. At a minimum, I'd like to adopt an approach that works for the various CLIs that support it (mysql, psql). I don't think mssql-cli would support it though. |
FYI As part of the V2 work, we'll be able to support Unix sockets on Windows. #1182 |
The v2 release includes support for Unix sockets on Windows. Get the latest version here: https://github.com/GoogleCloudPlatform/cloud-sql-proxy/releases/tag/v2.0.0.preview.0. See the documentation here: https://github.com/GoogleCloudPlatform/cloud-sql-proxy#configuring-unix-domain-sockets. |
Thank you! |
Add Ruby 2.4.1 to test suite
On Windows 10 I have
gcloud
setup and working. I downloaded the binary and without any arguments (perUsing automatic instance discovery with gcloud credentials
) I saw:I guess this is to be expected as Windows does not support
:
in directory names, but perhaps by default the character should be-
or changed for Windows specifically.After changing the separator in code to
-
it worked but then I hit:And in code it specifically checks if OS is Windows and removes
unix
from supported list. I wonder if this could be defaulttcp
on Windows?In the end I got things to work with this:
.\cloud_sql_proxy.exe -instances=myproject-12345:us-central1:test=tcp:5433
.The text was updated successfully, but these errors were encountered: