如何通过管道将 PHP 应用程序连接到 MySQL?
Posted
技术标签:
【中文标题】如何通过管道将 PHP 应用程序连接到 MySQL?【英文标题】:How to connect a PHP app to MySQL via pipes? 【发布时间】:2020-01-11 13:10:19 【问题描述】:我发现可以通过their documentation of mysqli 中的管道将 php 连接到 MySQL,但我终其一生都找不到任何人解释需要什么。
host
参数声明:
如果可能,将使用管道而不是 TCP/IP 协议。
但是什么时候“可能”呢?我有自己的机器,我绝对有必要的权限来实现这一点,我只是不知道怎么做。检查host_info
时,连接到主机localhost
报告“Localhost via UNIX socket”。
尝试关注该页面上的一条(被否决的)评论,并连接到主机 .
,并将 socket
参数设置为 mysql
,会导致 2002
连接错误。
我如何告诉它(总是)通过管道连接?
【问题讨论】:
【参考方案1】:今天我遇到了同样的问题,在 Windows 上解决这个问题需要很多时间。 我可以使用以下代码建立命名管道连接:
$connection = new mysqli('.', 'user', 'pass', 'database', null, '\\\\.\\pipe\\name_of_pipe');
我要连接的服务器具有以下配置:
[mysqld]
skip-networking
enable-named-pipe
socket=name_of_pipe
使用'127.0.0.1'
、'localhost'
或NULL
作为主机名不起作用。此外,您必须指定命名管道的路径,而不仅仅是管道的名称。
不幸的是,这里的 PHP 文档有点弱......
【讨论】:
【参考方案2】:命名管道只能在 Windows 下工作。
还有
每当您指定“localhost”或“localhost:port”作为服务器时,MySQL 客户端库将覆盖它并尝试连接到本地套接字(Windows 上的命名管道)。如果要使用 TCP/IP,请使用“127.0.0.1”而不是“localhost”。如果 MySQL 客户端库尝试连接到错误的本地套接字,您应该在 PHP 配置中设置正确的路径,并将服务器字段留空。
实际的PHP文档中没有提到,但应该还是有效的。
【讨论】:
以上是关于如何通过管道将 PHP 应用程序连接到 MySQL?的主要内容,如果未能解决你的问题,请参考以下文章
Rails 应用程序无法通过命名管道/套接字连接到本地 MySQL 服务器 --- Windows 7 x64
如何将 android 应用程序连接到 MYSQL 服务器并从中检索数据?
如何创建允许 PHP 通过 SSL 连接到 MySQL 的证书?