Обсуждение: Connecting to postgres on OSX from Swift using PostgresClientKit
Hi, Wondered if anyone had experience connection to pg14.1 running on OSX using the swift library PostgresClientKit. I am having difficulties connecting and hopefully someone can put me on the right track. The following is the swift code I am using [Code] var config = ConnectionConfiguration() config.database = "mydb" config.user = "postgres" config.credential = .scramSHA256(password: "mypassword") config.port = "5432" config.ssl = true let connection = try PostgresClientKit.Connection(configuration: config) defer { connection.close() } [/Code] I have the following in my pg_hba.conf file: [Code] local all all scram-sha-256 [/Code] I can successfully connect using psql and/pgadmin, but when I try and connect in code I get the following error: [Code] [Connection-1 Severe] Unable to connect socket: Error Code: -9989(0x2705), Operation not permitted [/Code] Any suggestions? Thanks Howard Cole Selestial.com
On 7/31/22 16:40, howardnews@selestial.com wrote:
Hi,Maybe add config.host = "localhost"?
Wondered if anyone had experience connection to pg14.1 running on OSX using the swift library PostgresClientKit.
I am having difficulties connecting and hopefully someone can put me on the right track.
The following is the swift code I am using
[Code]
var config = ConnectionConfiguration()
config.database = "mydb"
config.user = "postgres"
config.credential = .scramSHA256(password: "mypassword")
config.port = "5432"
config.ssl = true
let connection = try PostgresClientKit.Connection(configuration: config)
defer { connection.close() }
[/Code]
I have the following in my pg_hba.conf file:
[Code]
local all all scram-sha-256
[/Code]
I can successfully connect using psql and/pgadmin, but when I try and connect in code I get the following error:
[Code]
[Connection-1 Severe] Unable to connect socket: Error Code: -9989(0x2705), Operation not permitted
[/Code]
Any suggestions?
Thanks
Howard Cole
Selestial.com
Re: Connecting to postgres on OSX from Swift using PostgresClientKit
От
howardnews@selestial.com
Дата:
On 2022-07-31 23:42, Rob Sargent wrote: > On 7/31/22 16:40, howardnews@selestial.com wrote: > >> Hi, >> >> Wondered if anyone had experience connection to pg14.1 running on >> OSX using the swift library PostgresClientKit. >> >> I am having difficulties connecting and hopefully someone can put me >> on the right track. >> >> The following is the swift code I am using >> >> [Code] >> var config = ConnectionConfiguration() >> config.database = "mydb" >> config.user = "postgres" >> config.credential = .scramSHA256(password: "mypassword") >> config.port = "5432" >> config.ssl = true >> let connection = try PostgresClientKit.Connection(configuration: >> config) >> defer { connection.close() } >> [/Code] >> >> I have the following in my pg_hba.conf file: >> >> [Code] >> local all all scram-sha-256 >> [/Code] >> >> I can successfully connect using psql and/pgadmin, but when I try >> and connect in code I get the following error: >> >> [Code] >> [Connection-1 Severe] Unable to connect socket: Error Code: >> -9989(0x2705), Operation not permitted >> [/Code] >> >> Any suggestions? >> >> Thanks >> >> Howard Cole >> Selestial.com > Maybe add config.host = "localhost"? Thanks, tried localhost, 127.0.0.1 and ::128. No joy
howardnews@selestial.com writes: > On 2022-07-31 23:42, Rob Sargent wrote: >> On 7/31/22 16:40, howardnews@selestial.com wrote: >>> I can successfully connect using psql and/pgadmin, but when I try >>> and connect in code I get the following error: >>> [Connection-1 Severe] Unable to connect socket: Error Code: >>> -9989(0x2705), Operation not permitted >> Maybe add config.host = "localhost"? > Thanks, tried localhost, 127.0.0.1 and ::128. No joy Don't know much about Swift, but it wouldn't surprise me if that code is running in some kind of sandbox that disallows IP connections by default. Also, does psql work when you say "psql -h localhost"? It's possible that your server isn't listening on localhost, or there's a firewall there. Your working connections could all be via Unix sockets, from what little you've said so far. regards, tom lane
On 7/31/22 16:53, howardnews@selestial.com wrote: > On 2022-07-31 23:42, Rob Sargent wrote: >> On 7/31/22 16:40, howardnews@selestial.com wrote: >> >>> Hi, >>> >>> Wondered if anyone had experience connection to pg14.1 running on >>> OSX using the swift library PostgresClientKit. >>> >>> I am having difficulties connecting and hopefully someone can put me >>> on the right track. >>> >>> Thanks >>> >>> Howard Cole >>> Selestial.com >> Maybe add config.host = "localhost"? > Thanks, tried localhost, 127.0.0.1 and ::128. No joy What error do you get in the above cases? > > -- Adrian Klaver adrian.klaver@aklaver.com
Re: Connecting to postgres on OSX from Swift using PostgresClientKit
От
howardnews@selestial.com
Дата:
On 2022-08-01 01:02, Tom Lane wrote: > howardnews@selestial.com writes: >> On 2022-07-31 23:42, Rob Sargent wrote: >>> On 7/31/22 16:40, howardnews@selestial.com wrote: >>>> I can successfully connect using psql and/pgadmin, but when I try >>>> and connect in code I get the following error: >>>> [Connection-1 Severe] Unable to connect socket: Error Code: >>>> -9989(0x2705), Operation not permitted > >>> Maybe add config.host = "localhost"? > >> Thanks, tried localhost, 127.0.0.1 and ::128. No joy > > Don't know much about Swift, but it wouldn't surprise me if that > code is running in some kind of sandbox that disallows IP > connections by default. > Swift/Xcode is new to me too! > Also, does psql work when you say "psql -h localhost"? It's > possible that your server isn't listening on localhost, or > there's a firewall there. Your working connections could all be > via Unix sockets, from what little you've said so far. > > regards, tom lane Using psql, i can successfully connect to localhost. In the postgresql.conf the listen address is *. The application was installed from the EDB installer; not sure about firewalls on sandboxes in this situation. Howard
Re: Connecting to postgres on OSX from Swift using PostgresClientKit
От
howardnews@selestial.com
Дата:
On 2022-08-01 01:04, Adrian Klaver wrote: > On 7/31/22 16:53, howardnews@selestial.com wrote: >> On 2022-07-31 23:42, Rob Sargent wrote: >>> On 7/31/22 16:40, howardnews@selestial.com wrote: >>> >>>> Hi, >>>> >>>> Wondered if anyone had experience connection to pg14.1 running on >>>> OSX using the swift library PostgresClientKit. >>>> >>>> I am having difficulties connecting and hopefully someone can put me >>>> on the right track. > >>>> >>>> Thanks >>>> >>>> Howard Cole >>>> Selestial.com >>> Maybe add config.host = "localhost"? >> Thanks, tried localhost, 127.0.0.1 and ::128. No joy > > What error do you get in the above cases? > >> >> Here is the error I get in the application. 2022-08-01T00:20:18.530Z Connection-1 finer] Created socket [2022-08-01T00:20:18.532Z Connection-1 fine] Opening connection to port 5432 on host localhost 2022-08-01 01:20:18.534308+0100 TestPostgres[10654:120173] dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mDNSResponder Socket:13 Err:-1 Errno:1 Operation not permitted 2022-08-01 01:20:18.535617+0100 TestPostgres[10654:120173] [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, SYSPROTO_CONTROL) failed: Operation not permitted 2022-08-01 01:20:18.535694+0100 TestPostgres[10654:120173] [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, SYSPROTO_CONTROL) failed: Operation not permitted [2022-08-01T00:20:18.537Z Connection-1 severe] Unable to connect socket: Error code: -9989(0x-2705), Operation not permitted [2022-08-01T00:20:18.537Z Connection-1 finer] Closing socket
Re: Connecting to postgres on OSX from Swift using PostgresClientKit
От
howardnews@selestial.com
Дата:
On 2022-08-01 01:04, Adrian Klaver wrote: > On 7/31/22 16:53, howardnews@selestial.com wrote: >> On 2022-07-31 23:42, Rob Sargent wrote: >>> On 7/31/22 16:40, howardnews@selestial.com wrote: >>> >>>> Hi, >>>> >>>> Wondered if anyone had experience connection to pg14.1 running on >>>> OSX using the swift library PostgresClientKit. >>>> >>>> I am having difficulties connecting and hopefully someone can put me >>>> on the right track. > >>>> >>>> Thanks >>>> >>>> Howard Cole >>>> Selestial.com >>> Maybe add config.host = "localhost"? >> Thanks, tried localhost, 127.0.0.1 and ::128. No joy > > What error do you get in the above cases? > >> >> When using 127.0.0.1... 2022-08-01T00:29:19.319Z Connection-1 finer] Created socket [2022-08-01T00:29:19.322Z Connection-1 fine] Opening connection to port 5432 on host 127.0.0.1 [2022-08-01T00:29:19.324Z Connection-1 severe] Unable to connect socket: Error code: -9989(0x-2705), Operation not permitted [2022-08-01T00:29:19.324Z Connection-1 finer] Closing socket
On 7/31/22 19:30, howardnews@selestial.com wrote: > On 2022-08-01 01:04, Adrian Klaver wrote: >> On 7/31/22 16:53, howardnews@selestial.com wrote: >>> On 2022-07-31 23:42, Rob Sargent wrote: >>>> On 7/31/22 16:40, howardnews@selestial.com wrote: >>>> >>>>> Hi, >>>>> >>>>> Wondered if anyone had experience connection to pg14.1 running on >>>>> OSX using the swift library PostgresClientKit. >>>>> >>>>> I am having difficulties connecting and hopefully someone can put me >>>>> on the right track. >> >>>>> >>>>> Thanks >>>>> >>>>> Howard Cole >>>>> Selestial.com >>>> Maybe add config.host = "localhost"? >>> Thanks, tried localhost, 127.0.0.1 and ::128. No joy >> >> What error do you get in the above cases? >> >>> >>> > > When using 127.0.0.1... > > 2022-08-01T00:29:19.319Z Connection-1 finer] Created socket > [2022-08-01T00:29:19.322Z Connection-1 fine] Opening connection to port > 5432 on host 127.0.0.1 > [2022-08-01T00:29:19.324Z Connection-1 severe] Unable to connect socket: > Error code: -9989(0x-2705), Operation not permitted > [2022-08-01T00:29:19.324Z Connection-1 finer] Closing socket This really looks like an error somewhere in the Mac OS networking stack. What happens when you "telnet localhost 5432"? -- Angular momentum makes the world go 'round.
On 7/31/22 17:27, howardnews@selestial.com wrote: > On 2022-08-01 01:04, Adrian Klaver wrote: >> On 7/31/22 16:53, howardnews@selestial.com wrote: >>> On 2022-07-31 23:42, Rob Sargent wrote: > 2022-08-01T00:20:18.530Z Connection-1 finer] Created socket > [2022-08-01T00:20:18.532Z Connection-1 fine] Opening connection to port > 5432 on host localhost > 2022-08-01 01:20:18.534308+0100 TestPostgres[10654:120173] > dnssd_clientstub ConnectToServer: connect() failed A search on above error message found: https://github.com/firebase/firebase-ios-sdk/issues/3033 https://developer.apple.com/forums/thread/67792 https://github.com/emqx/CocoaMQTT/issues/202 all of which point to what Tom Lane mentioned, sandboxing. > path:/var/run/mDNSResponder Socket:13 Err:-1 Errno:1 Operation not > permitted > 2022-08-01 01:20:18.535617+0100 TestPostgres[10654:120173] > [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, SYSPROTO_CONTROL) > failed: Operation not permitted > 2022-08-01 01:20:18.535694+0100 TestPostgres[10654:120173] > [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, SYSPROTO_CONTROL) > failed: Operation not permitted > [2022-08-01T00:20:18.537Z Connection-1 severe] Unable to connect socket: > Error code: -9989(0x-2705), Operation not permitted > [2022-08-01T00:20:18.537Z Connection-1 finer] Closing socket -- Adrian Klaver adrian.klaver@aklaver.com
Re: Connecting to postgres on OSX from Swift using PostgresClientKit
От
howardnews@selestial.com
Дата:
On 2022-08-01 04:06, Adrian Klaver wrote: >> 2022-08-01T00:20:18.530Z Connection-1 finer] Created socket >> [2022-08-01T00:20:18.532Z Connection-1 fine] Opening connection to >> port 5432 on host localhost >> 2022-08-01 01:20:18.534308+0100 TestPostgres[10654:120173] >> dnssd_clientstub ConnectToServer: connect() failed > > A search on above error message found: > > https://github.com/firebase/firebase-ios-sdk/issues/3033 > > https://developer.apple.com/forums/thread/67792 > > https://github.com/emqx/CocoaMQTT/issues/202 > > all of which point to what Tom Lane mentioned, sandboxing. > >> path:/var/run/mDNSResponder Socket:13 Err:-1 Errno:1 Operation not >> permitted >> 2022-08-01 01:20:18.535617+0100 TestPostgres[10654:120173] >> [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, >> SYSPROTO_CONTROL) failed: Operation not permitted >> 2022-08-01 01:20:18.535694+0100 TestPostgres[10654:120173] >> [si_destination_compare] socket(PF_SYSTEM, SOCK_DGRAM, >> SYSPROTO_CONTROL) failed: Operation not permitted >> [2022-08-01T00:20:18.537Z Connection-1 severe] Unable to connect >> socket: Error code: -9989(0x-2705), Operation not permitted >> [2022-08-01T00:20:18.537Z Connection-1 finer] Closing socket Hi Adrian, you & Tom were correct - it was sandbox settings (which was turned off??) in Xcode which caused the problems. In case anyone else has the problem, the steps I took to fix the problem in XCode 13.3 were as follows: 1. Go to the project explorer and select the project. 2. Select the Target under the list of Targets 3. Select the "Signing & Capabilities" Tab/Heading 4. Under the "App Sandbox" settings, select the "Outgoing connections (client)" checkbox. 5. Note - the "Enable App Sandbox" under Build Settings seems to have no effect! Apologies for not finding this myself - This was purely a MacOS / XCode problem - but many thanks to you all (Adrian, Tom, Rob) for proving yet again that Postgresql support is the best. Howard.