如何配置 phoenix 以将套接字与 postgresql 一起使用
How do I configure phoenix to use sockets with postgresql
PostgreSQL 支持使用 unix 套接字而不是 TCP 套接字。如何配置以下块以使用 unix 套接字。
# Configure your database
config :my_app, Sample.Repo,
adapter: Ecto.Adapters.Postgres,
database: "ecto_simple",
username: "postgres",
password: "postgres"
出于性能和隐私的考虑,PostgreSQL 更喜欢 unix 套接字而不是 TCP 套接字。如果尚不可用:如果您遵循简单的文档并有权访问,则可以在服务器上启用 TCP。
客户端连接的途径是通过环境变量设置的,特别是:PGHOST。从经验来看,像 libpq 这样的驱动程序期望以这种方式工作——如果 Postgrex 不这样做,那将是令人震惊的。
参见:https://hexdocs.pm/postgrex/Postgrex.html
PGHOST 中提供的值根据服务器的配置而变化,如文件中所示:"postgresql.conf"。
您可能需要为套接字创建目录并设置权限。以下应该有所帮助:http://iamvery.com/2013/06/17/postgresapp-with-unix-socket.html
要获得更准确的答案,您需要提及您的操作系统和版本;还有你的 PostgreSQL 版本。
截至 2018 年 3 月,Postgrex 现在支持通过套接字进行连接。
这可以通过提供 socket
或 socket_dir
选项来完成。这是 changelog from where I picked this up and the source code,您可以在其中看到所有选项的详尽列表。
来自源代码:
:socket_dir
- 通过给定目录中的 UNIX 套接字连接到 Postgres;
套接字名称是根据零件派生的。这是首选方法
用于配置套接字,它优先于主机名。如果你是
连接到 Postgres 约定之外的套接字,请改用 :socket
;
:socket
- 通过给定路径中的 UNIX 套接字连接到 Postgres。
如果您使用的 AppEngine 要求您通过 SQL 代理通过本地主机 (127.0.01) 进行连接,而后者只能通过代理连接工作,这将特别有用(我想)。
PostgreSQL 支持使用 unix 套接字而不是 TCP 套接字。如何配置以下块以使用 unix 套接字。
# Configure your database
config :my_app, Sample.Repo,
adapter: Ecto.Adapters.Postgres,
database: "ecto_simple",
username: "postgres",
password: "postgres"
出于性能和隐私的考虑,PostgreSQL 更喜欢 unix 套接字而不是 TCP 套接字。如果尚不可用:如果您遵循简单的文档并有权访问,则可以在服务器上启用 TCP。
客户端连接的途径是通过环境变量设置的,特别是:PGHOST。从经验来看,像 libpq 这样的驱动程序期望以这种方式工作——如果 Postgrex 不这样做,那将是令人震惊的。 参见:https://hexdocs.pm/postgrex/Postgrex.html
PGHOST 中提供的值根据服务器的配置而变化,如文件中所示:"postgresql.conf"。
您可能需要为套接字创建目录并设置权限。以下应该有所帮助:http://iamvery.com/2013/06/17/postgresapp-with-unix-socket.html
要获得更准确的答案,您需要提及您的操作系统和版本;还有你的 PostgreSQL 版本。
截至 2018 年 3 月,Postgrex 现在支持通过套接字进行连接。
这可以通过提供 socket
或 socket_dir
选项来完成。这是 changelog from where I picked this up and the source code,您可以在其中看到所有选项的详尽列表。
来自源代码:
:socket_dir
- 通过给定目录中的 UNIX 套接字连接到 Postgres; 套接字名称是根据零件派生的。这是首选方法 用于配置套接字,它优先于主机名。如果你是 连接到 Postgres 约定之外的套接字,请改用:socket
;:socket
- 通过给定路径中的 UNIX 套接字连接到 Postgres。
如果您使用的 AppEngine 要求您通过 SQL 代理通过本地主机 (127.0.01) 进行连接,而后者只能通过代理连接工作,这将特别有用(我想)。