【问题标题】:How to connect a PHP app to MySQL via pipes?如何通过管道将 PHP 应用程序连接到 MySQL?
【发布时间】: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 连接错误。

我如何告诉它(总是)通过管道连接?

【问题讨论】:

    标签: php mysql mysqli named-pipes


    【解决方案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文档中没有提到,但应该还是有效的。

      【讨论】:

        猜你喜欢
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 2019-09-08
        • 1970-01-01
        • 2011-11-30
        • 2013-05-12
        • 2014-02-12
        • 2022-01-08
        相关资源
        最近更新 更多