【发布时间】:2016-01-29 21:35:20
【问题描述】:
phpMyAdmin 能否使用协议 PIPE(无 tcp,无套接字)连接到远程主机(windows)
谢谢
【问题讨论】:
标签: phpmyadmin pipe connect
phpMyAdmin 能否使用协议 PIPE(无 tcp,无套接字)连接到远程主机(windows)
谢谢
【问题讨论】:
标签: phpmyadmin pipe connect
我确定它在 phpMyAdmin 中未经测试,但根据很少的 MySQL 文档,我发现它看起来应该可以通过指定 $cfg['Servers'][$i]['host'] = '.'; 来使用默认命名管道。我想你的connect_type 会是'tcp',但如果这不起作用,试试'socket'。您可以在 $cfg['Servers'][$i]['socket'] 字段中指定非默认命名管道。如果你成功了,了解 phpMyAdmin 文档会很有趣。
编辑:
管道的处理方式与 TCP/IP 连接不同,后者基本上是一种抽象的 Windows 功能,而不是网络堆栈的一部分。我可能完全误认为需要使用主机字段,可能是您需要将其完全留空,但 MySQL 客户端文档明确使用 . 作为主机(或 --pipe 选项)时使用 MySQL 命令行客户端。稍后会详细介绍。
您不会将远程主机放在这里,因为命名管道本身由服务器名称和管道组成,例如 \\ServerName\pipe\mysqlpipe (Microsoft documentation),您还必须在 MySQL 服务器上通过启动带有--socket='\\.\pipe\mysqlpipe' 或与之相近的变体的服务器(当然还有--enabled-named-pipe (MySQL documentation))。
我首先在服务器上使用 MySQL 命令行客户端进行测试,一旦您运行了 MySQL 服务,请尝试从命令行客户端连接类似 mysql --pipe --socket=\\.\pipe\mysqlpipe -u root -p (MySQL documentation) 的内容。连接后,使用 SQL 命令STATUS; 验证您的连接类型。如果您无法从本地机器上的 MySQL 命令行客户端进行连接,那么您肯定无法从远程系统进行连接。如果可行,是时候尝试远程命令行客户端或直接跳转到远程 phpMyAdmin 连接,您将在套接字路径(实际上是命名管道路径)中使用服务器名而不是 .。
【讨论】: