PHP的MySQL *server*协议实现

5
已经有一些应用程序可以“理解”mysql协议,并且可以使用mysql客户端连接——例如:您可以使用(一个)mysql客户端连接到sphinx搜索引擎,mysql-proxy也理解mysql协议等等。
现在,我想知道是否有PHP实现可用,以便您可以使用mysql客户端连接到在PHP中实现的某个服务器应用程序? 我正在寻找一些实现mysql协议的PHP库(或扩展)。
谢谢, 哈拉德

有何意义?有许多开放且文档完备的协议可能更加适合,为什么一定要使用mysql客户端来与服务器通信呢? - symcbean
我知道这并不回答你的问题,但我相当确定有一个不同的解决方案适用于你的问题。这听起来像个糟糕的主意 :) - Evert
我想为一些用PHP实现的服务器应用程序提供SQL接口。例如,我喜欢使用标准的MySQL客户端或客户端库连接到Sphinx搜索引擎。您可以使用支持MySQL作为后端的任何应用程序查询Sphinx...这很好,我认为 :) - aurora
保罗,你找到解决方案了吗?我也在寻找同样的东西... - Toby
你最终找到了任何解决方案吗? - user878274
很抱歉,我没有找到解决方案。我得出结论,寻找实现目标的替代方法确实更好。 - aurora
4个回答

1

我不知道是否存在一个纯 PHP 实现的 MySQL 服务器。我认为它会比 C/C++ 的版本慢。此外,PHP 一直以来都很难以作为守护进程运行。

然而,如果你想要实现一个服务器,你可以参考 http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol。它定义了客户端和服务器通信的协议。


是的,你可能是对的——一个纯 PHP 实现会很慢。不管怎样,我会查看协议文档,感谢提供链接。 - aurora
绝对正确!PHP在运行监听器/守护进程方面非常糟糕。任何时候,当您感觉需要一个脚本不断运行时,您已经超出了PHP应该做的范围,您需要考虑其他选项。 - Joe Mills
我不认为 PHP 的进程控制函数是“那么”糟糕的。但是,它们确实存在一些限制... - aurora

1

谢谢分享!非常有趣,特别是针对Erlang的MyProto! - aurora

0
你是指这样的情况吗:你有一个没有mysql库的系统,但你想要能够与mysql服务器通信。为了做到这一点,你想使用PHP作为代理来与数据库通信?
如果你现有的系统可以进行http请求,你可能想在php中创建一个restful服务并访问该restful服务。PHPRest可能是你正在寻找的。
请记住,与直接调用数据库相比,这可能会很慢。

不好意思,我的问题表述不够清晰。我想要实现一个能够支持mysql-server协议的服务器。 - aurora

-1

PHP中有内置的mySQL客户端函数: 手册

这是你想要的吗?


我认为他想要实现一个服务器,以便任何MySQL客户端都可以连接到它。 - Paul Dixon
是的,保罗是正确的 - 我正在寻找如何实现服务器。 - aurora
好的。嗯,用PHP实现mySQL协议会非常慢,以至于我认为没有一个可行的产品。FlorianH的代理想法可能是你在不重写整个东西的情况下能够接近的最佳方案。我可以问一下你想用这个做什么吗? - Pekka
啊,我明白了,您想基于mySQL协议提供自定义数据服务。嗯,正如我所说,PHP在结构上并不是非常适合这种语言。难道没有更适合的协议来实现您的接口吗?比如无状态Web服务协议之一? - Pekka
我认为这是一个不错的想法——至少可以开始尝试一下,如果有这样的扩展。如果它真的成为最终产品的一部分……我不确定。;-) - aurora
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接